PDA

View Full Version : ارسال پارامتر از دلفی به word



ariobarzan
پنج شنبه 03 دی 1394, 23:23 عصر
با سلام
تعداد زیادی فرم بصورت word دارم که میخوام از طریق دلفی اطلاعاتی را به اونها مثل نام و نام خانوادگی بفرستم
بصورتی که کاربر با انتخاب یک فرد بتونه فرم مورد نظر را برای اون چاپ کنه یعنی دلفی فایل word مرتبط را باز کنه و در جایی که نام و نام خانوادگی هست اطلاعات فرد مورد نظر را بزاره
را حل این کار چیه ؟
ممنون

ابوالفضل عباسی
یک شنبه 06 دی 1394, 11:25 صبح
باسلام
استفاده از کامپوننت tms که کارش ویرایش فایل word ,excel هست و یا از کامپوننت TWord

ariobarzan
دوشنبه 07 دی 1394, 17:52 عصر
سلام
ممنون از توجه شما
کمپوننت TMS را دارم کدوم کمپوننت از این مجموعه این کار را انجام میده ؟

fahimi
دوشنبه 07 دی 1394, 20:40 عصر
برای ارسال پارمتر به Word در Word فیلد های مورد نظرتان در ابتدا ایجاد و نام گذاری کنید و سپس با دلفی پارمتر ها را به آن فیلد ها ارسال کنید.
جهت ایجاد فیلد در word در اینتر نت جستجو کنید.
این هم نمونه کد ارسال پارمتر به word


procedure MailMergeWord;
var
WordApp: TWordApplication;
WordDoc: TWordDocument;
doc : WordDocument;
FileName,FileDoc: OleVariant;
xx: integer;
fieldName:string;
begin
FileDoc := 'E:\BB.doc' ;

WordApp := TWordApplication.Create(nil);
WordApp.ConnectKind := ckNewInstance;
WordDoc := TWordDocument.Create(WordApp);
FileName := 'H:\Delphi Tamrin\word6\mydoc.dotx';
Doc := WordApp.Documents.Open(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordDoc.ConnectTo(Doc);
for xx := 1 to WordDoc.Fields.Count do
begin
fieldName := wordApp.ActiveDocument.Fields.Item(xx).Result.Text ;
if fieldName = '«Fname»' then
WordDoc.Fields.Item(xx).Result.Text := form1.Edit1.Text;
if fieldName = '«Lname»' then
WordDoc.Fields.Item(xx).Result.Text := form1.Edit2.Text;
end;

khoshblagh
دوشنبه 07 دی 1394, 22:58 عصر
جناب فهیمی
ضمن تشکر از کدی که قرار دادی . موضوع فیلد را در ورد پیگیری کردم ، ولی ظاهرا این فیلدها موضوعات ثابتی دارند و نتوانستم استفاده نمایم. در صورت امکان بر اساس کد بالا نمونه ساده ای از فرم ورد را در صورت کدام در سایت قرار دهید. فقط کافیه شامل یک فیلد باشه تا مطمئن شوم راه را اشتباهی طی نکردم. متشکرم

ariobarzan
سه شنبه 08 دی 1394, 23:35 عصر
سلام
با تشکر از دوستمون جناب فهیمی
من کد بالا را استفاده کردم ولی جواب نداد
ظاهرا بعد از دستور
Doc := WordApp.Documents.Open(FileName, EmptyP...
برنامه متوقف میشه و هنگ میکنه
کاربرد اون خط
FileDoc := 'E:\BB.doc' ;
را هم متوجه نشدم چون دیگه ازش استفاده ای نشده
اگه ممکنه یک نمونه برنامه لطف بفرمایید

fahimi
چهارشنبه 09 دی 1394, 23:56 عصر
با سلام خدمت دوستان گرامی
جهت ساخت فیلد در Word به ترتیب تصویر زیر عمل شود.
برای استفاده مجدد برنامه از فرم تهیه شده فرم به صورت Template ذخیره شود در دفعات بعد با نام دلخواه توسط برنامه ذخیره می شود که من bb.doc گذاشته ام

fahimi
چهارشنبه 09 دی 1394, 23:59 عصر
فعلاً بدجوری گرفتار هستم با این حال سعی می کنم تا چند روز آینده یک نمونه آپلود کنم