Экспорт информации из базы данных в Word
Автор: Uncle B.
Если используешь шаблон, то вариант такой:
1. В шаблоне Word'a в нужные места расставляешь Bookmark (Insert->Bookmark).
2. В проге позиционируешь на этот букмарк и пишешь данные.
(WrdApp - TWordApplication) procedure TfrmPToClient.bbCreateClick(Sender: TObject); var InvoiceTemplate: OleVariant; begin // Соединение с OLE-сервером WrdApp.Connect; WrdApp.Visible := True; // выбор шаблона if not FileExists(dlgOpen.FileName) then Exit; InvoiceTemplate := edFileName.Text; // открытие выбраного шаблона в Word'e WrdApp.Documents.Add(InvoiceTemplate, EmptyParam); WordGotoBookmark('PDate'); WordInsertText(' ' + DateToStr(dtpPDate.Date)); WordGotoBookmark('PNr'); WordInsertText(' ' + edPNr.Text); WordGotoBookmark('PClientName'); WordInsertText(' ' + dmIB_TOIS.tblProject.FieldByName('ProjectClientName').asString); WordGotoBookmark('ContractNr'); WordInsertText(' ' + dmIB_TOIS.tblProject.FieldByName('CLWordGotoBookmark(' ContractDate'); WordInsertText(' ' + dmIB_TOIS.tblProject.FieldByName('CL_ContractDate').asString); WordGotoBookmark('PCargoName'); WordInsertText(' ' + dmIB_TOIS.tblProjectCargo.FieldByName('CargoName').asString); WordGotoBookmark('PProjectYear'); WordInsertText(' ' + dmIB_TOIS.tblProject.FieldByName('PROJECTNOTICEYEAR').asString); WordGotoBookmark('PProjectMonth'); WordInsertText(' ' + arMonths[dmIB_TOIS.tblProject.FieldByName('PROJECTNOTICEMonth').asInteger]); end; procedure TfrmPToClient.WordGotoBookmark(Bookmark: string); var What: OLEVariant; Which: OLEVariant; Count: OLEVariant; Name: OLEVariant; begin What := wdGoToBookmark; Which := unAssigned; Count := unAssigned; Name := Bookmark; WrdApp.Selection.GoTo_(What, Which, Count, Name); end; procedure TfrmPToClient.WordInsertText(Text: string); begin WrdApp.Selection.TypeText(Text); end; |
В случае, если нужно вывести набор записей (например в вордовскую таблицу),
то вариант такой :
1. В шаблоне Ворда рисуешь "болванку" таблицы,
делаешь макрос вставки новой строки в таблицу и можно ещё простые макросы перехода по ячейкам таблицы.
2. В проге позиционируешь через Bookmark на первую ячейку,
далее в цикле вызываешь вордовский макрос создания новой
строки и с помощью макросов перехода по ячейкам вбиваешь данные из набора.
Кстати, если будешь делать вывод набора записей - выложи пример, а то теоретически я себе это представляю, а до практики руки не дошли.
Далее: Экспортировать TDBGrid в Excel без использования OLE »»