Шаг 59.
Автоматизация Microsoft Word. Создание простого документа. Почтовый конверт

    На этом шаге мы рассмотрим пример создания почтового конверта.

    Приведем небольшой фрагмент программы для формирования надписей на почтовых конвертах. Работая в среде Delphi с базами данных, вы с легкостью сможете разработать свою программу для их подготовки.

    Сначала создадим документ (как на рисунке 1).


Рис.1. Шаблон документа

    Сохраним его в формате "Шаблон документа", чтобы использовать для создания необходимого документа. Текст в этом документе (###обратный индекс& и т. п.) представляет собой текстовые константы, которые будут заменены текстом в процессе формирования документа.

    После создания шаблона скопируем файл с расширением DOT (формат "Шаблон документа") в рабочую папку программы или папку MS Office. После этого можно приступить к формированию надписей на конверте. Рассмотрим следующий фрагмент программы.

procedure TForm1.Button1Click(Sender: TObject);
const wdReplaceAll=2;
begin
  W:=CreateOleObject('Word.Application');
  W.Visible:=True;
  // Создаем новый документ по шаблону
  W.Documents.Add('Конверт.dot');
  // Прямой адрес
  W.Selection.Find.Text:='###индекс&';
  W.Selection.Find.Replacement.Text:='350049';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
  W.Selection.Find.Text:='###адрес&';
  W.Selection.Find.Replacement.Text:='Краснодар, ул. Севастопольская, 
                         д. 3, кв. 1230';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
  W.Selection.Find.Text:='###получатель&';
  W.Selection.Find.Replacement.Text:='Иванов Иван Иванович';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
  // Обратный адрес
  W.Selection.Find.Text:= '###обратный индекс&';
  W.Selection.Find.Replacement.Text:='198005';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
  W.Selection.Find.Text:= '###обратный адрес&';
  W.Selection.Find.Replacement.Text:='Санкт-Петербург, 
                       Измайловский пр., д. 29, кв. 1112';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
  W.Selection.Find.Text:='###отправитель&';
  W.Selection.Find.Replacement.Text:='Петрова Альбина Васильевна';
  W.Selection.Find.Execute(Replace:=wdReplaceAll);
end;
Текст этого приложения вместе с шаблоном можно взять здесь (8,3 Кб).

    После выполнения этой процедуры мы получим результат, как на рисунке 2.


Рис.2. Результат работы приложения

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

    Со следующего шага мы начнем рассматривать работу с таблицами.




Предыдущий шаг Содержание Следующий шаг