PDA

View Full Version : ارتباط Delphi با Word



hedi
سه شنبه 06 شهریور 1386, 23:30 عصر
چگونه می توان یک رکورد متنی ذخیره شده را از DataBase در دلفی برای منظور تهیه گزارش در نرم افزار Microsoft Word با تنظیمات قبلی ( منظور رنگ متن ها و فونت ها و ...) آن رکورد را در آن محیط باز کرد.

Will_Smith
سه شنبه 06 شهریور 1386, 23:50 عصر
SMEXport رو امتحان کن

cybercoder
چهارشنبه 07 شهریور 1386, 00:55 صبح
Fast Reports Export

Will_Smith
چهارشنبه 07 شهریور 1386, 09:45 صبح
Fast Reports Export
این کامپوننتی رو که میگی میشه بدون استفاده از خود fast Report و مجزا از اون استفاده کرد؟

cybercoder
چهارشنبه 07 شهریور 1386, 10:12 صبح
در Pakage مربوط به Fast Reports موجوده

__Bug__
چهارشنبه 07 شهریور 1386, 10:22 صبح
سلام
می تونی به صورت RTF توی بانک ذخیره کنی و بعد همونو توی یک RichEdit نشون بدی.

Will_Smith
چهارشنبه 07 شهریور 1386, 13:07 عصر
در Pakage مربوط به Fast Reports موجوده.
این که جواب سوال من نبود
منظورم این بود که من فکر میکردم که از کمپوننت های Export خود Fast report در خود preview استفاده میشه کرد و نه بصورت مجزا از Fast report

Will_Smith
چهارشنبه 07 شهریور 1386, 13:08 عصر
فکر میکنم از کمپوننت هایی که در تب Servers هستند هم میشه استفاده کرد ولی من کار نکردم

پرواز
چهارشنبه 07 شهریور 1386, 13:17 عصر
فکر میکنم از کمپوننت هایی که در تب Servers هستند هم میشه استفاده کرد ولی من کار نکردم
سلام
آره از اونا هم میشه استفاده کرد. من برای ارسال به اکسل از اونا استفاده کردم. برای ورد هم تقریبا به همین شکله. کاری که برای اکسل انجام دادم رو قبلا تو یه پست آپ کردم.
می تونی بری اونو ببینی و از اون الگو بگیری.
http://barnamenevis.org/forum/showthread.php?t=75994
این نکته رو هم بگم که به جای ExcelApplication باید از WordApplication استفاده کنی.
اگه نتونستی به جواب برسی بگو کمکت کنیم.

hedi
چهارشنبه 07 شهریور 1386, 18:19 عصر
از همه دوستان که در این مورد کلی بحث کردند بسیار سپاسگزارم

E_Zabihi
پنج شنبه 08 شهریور 1386, 08:35 صبح
سلام
برای اینکار از کامپوننتهای TWordApplication و TWordDocument باید استفاده کنید . این کامپوننتها ارتباط با ورد را بوسیله COM+ و روش Microsoft Office Automation Server برقرار می کنند . در واقع میشه اینجوری تصور کرد که ورد که یه نرم افزار Interface محظه که دستوارت API اون در Automation Server قرار دارد و ورد با فراخوانی COM+ ها از اون دستورات استفاده می کنه .
برای اتصال با ورد اینکار رو کنید :


procedure TFMain.BtnWordConnectClick(Sender: TObject);
var
RngTmp1, RngTmp2, RngTmp3, RngTmp4 : WordXP.Range;
VarBool1, VarBool2, VarPass, VarFileName: OleVariant;
begin
Screen.Cursor := crHourGlass;
VarFileName := EdtWordBrowse.Text;
VarBool1 := ChbWordVisible.Checked;
VarBool2 := ChbWordOpenReadOnly.Checked;
WA.Visible := VarBool1;
VarPass := EdtWordPassword.Text;

WD.ConnectTo(WA.Documents.Open(VarFileName,EmptyPa ram,VarBool2,EmptyParam,VarPass,EmptyParam,EmptyPa ram,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Em ptyParam,EmptyParam,EmptyParam,EmptyParam));
LblPropWordCount.Caption := 'Words Count : ' + IntToStr(WD.Words.Count);
LblPropParagCount.Caption := 'Paragraphs Count : ' + IntToStr(WD.Paragraphs.Count);
LblFootnoteCount.Caption := 'Footnote Count : ' + IntToStr(WD.Footnotes.Count);
EdtMaxWordParsed.Text := IntToStr(WD.Words.Count);
EdtMaxFootnoteParsed.Text := IntToStr(WD.Footnotes.Count);

Screen.Cursor := crDefault;
end;


که :

WD: TWordDocument;
WA: TWordApplication;

آهان پیداش کردم (آخه الان که داشتم اینها رو می نوشتم داشتم در ضمن دنبال یه مقاله توی کامپیوترم در همین ضمینه می گشتم که پیدا شد . اینو بخونید بهتره : ...