Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Экспорт информации из базы данных в Word

Delphi , Технологии , OLE Automation MSOffice

Экспорт информации из базы данных в 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 на первую ячейку, далее в цикле вызываешь вордовский макрос создания новой строки и с помощью макросов перехода по ячейкам вбиваешь данные из набора.

Кстати, если будешь делать вывод набора записей - выложи пример, а то теоретически я себе это представляю, а до практики руки не дошли.

Статья Экспорт информации из базы данных в Word раздела Технологии OLE Automation MSOffice может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: OLE Automation MSOffice ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
28.03.2024 15:55:23/0.0011022090911865/0