Возможно, наиболее распространенный и удачный пример использования
описанных объектов и методов — небольшой фрагмент программы для
формирования надписей на почтовых конвертах. Работая в среде Delphi с
базами данных, вы с легкостью сможете разработать свою программу для их
подготовки и получите массу благодарностей от людей, которым приходи-
лось делать это вручную.
Сначала создадим документ (как на рис. 6.12). Сохраним его в формате
"Шаблон документа", чтобы использовать для создания необходимого доку-
мента. Текст в этом документе (###обратный индекс& и т. п.) представляет
собой текстовые константы, которые будут заменены текстом в процессе
формирования документа.
Рис. 6.12. Шаблон надписей для почтового конверта
После создания шаблона скопируем файл с расширением DOT (формат
"Шаблон документа") в рабочую папку программы или папку MS Office.
После этого можно приступить к формированию надписей на конверте.
Рассмотрим следующий фрагмент программы.
Создание текста на конверте с использованием методов поиска и подстановки текста
procedure TForml.Buttonl3Click(Sender: TObject);
const wdReplaceAll=2;
begin
// Создаем новый документ по шаблону
W.documents.Add(ExtractFileDir(Application.ExeName)+J
'\Шаблон простого конверта.dot');
// Прямой адрес
W.Selection.Find.Text: ='###индекс&' ;
W.Selection.Find.Replacement.Text: ='35004 9';
W.Selection.Find.Execute(Replace:=wdReplaceAll);
W.Selection.Find.Text:='###адрес&';
W.Selection.Find.Replacement.Text:='Краснодар, ул. Севастопольская, J
д. 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:='###o6paTHbrii индекс&';
W.Selection.Find.Replacement.Text:='198005';
W.Selection.Find.Execute(Replace:=wdReplaceAll);
W.Selection.Find.Text:='###o6paTHbM адрес&';
W.Selection.Find.Replacement.Text:='Санкт-Петербург, Измайловский пр., J
д. 29, кв. '+'1112';
W.Selection.Find.Execute(Replace:=wdReplaceAll);
W.Selection.Find.Text:='##Отправитель&';
W.Selection.Find.Replacement.Text:='Петрова Альбина Васильевна';
W.Selection.Find.Execute(Replace:=wdReplaceAll);
end;
После выполнения этой процедуры мы получим результат, как на рис. 6.13.
Чтобы использовать этот результат, необходимо сохранить полученный до-
кумент и распечатать его. Можно выполнять данную процедуру в цикле,
получая исходные данные из базы данных и сохраняя документы под уни-
кальными именами или распечатывая их.
Пожалуй, данный пример — самый простой случай создания и использова-
ния шаблона. Рассмотрим еще один пример, основанный на использовании
шаблона документа. Его отличия заключаются в том, что для размещения
текстовых констант используются ячейки таблицы. Этот пример может быть
полезен вам в практическом плане, если вы создаете или поддерживаете
разработанную в среде Delphi бухгалтерскую программу. Подобным обра-
зом, используя таблицы, надписи и текстовые константы для подстановки,
можно изготовить шаблон документа практически любой сложности.
Рис. 6.13. Сформированные программой надписи для почтового конверта |