На этом шаге мы рассмотрим небольшой пример, иллюстрирующий использование WordBasic.
В качестве примера рассмотрим процедуру создания платежного поручения.
Разработаем прототип шаблона платежного поручения и приведем его к виду, показанному на рисунке 1. Далее сохраним его в формате шаблона (файл с расширением DOT) для последующего использования в процедуре формирования выходной формы документа "Платежное поручение".
Рис.1. Шаблон "Платежное поручение"
Как показано на рисунке 1, преобразование документа в шаблон заключается в том, что в некоторые ячейки внесен текст типа "###Сумма прописью&". Эти фрагменты текста и представляют собой текстовые константы, используемые для подстановки информации из программы.
Используем этот шаблон для создания документа. Текс следующего приложения демонстрирует, как это сделать.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, ExtDlgs; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var WB: Variant; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //Создание объекта WordBasic begin WB:=CreateOleObject('Word.Basic'); end; procedure TForm1.Button2Click(Sender: TObject); //Показать окно Word begin WB.AppShow; end; function FindAndInsert(FindText,ReplacementText:string):boolean; // Данная функция позволяет находить строку FindText // и подставлять на ее место строку ReplacementText. label 1; begin WB.StartOfDocument; 1:WB.EditFind(FindText); if WB.EditFindFound then begin WB.Insert(ReplacementText); goto 1; end; end; procedure TForm1.Button3Click(Sender: TObject); //Создать платежное поручение begin // Создаем новый документ по шаблону WB.FileNew(ExtractFileDir(Application.ExeName)+ '\Шаблон платежного поручения.dot'); WB.TableGridlines(false); // Подставляем текст. FindAndInsert ('###№ П.П.&','1'); FindAndInsert('###Дата&',datetostr(date)); FindAndInsert('###Вид платежа&','почтой'); FindAndInsert('###Сумма прописью&','Двести пятьдесят рублей сорок копеек'); FindAndInsert ('###Сумма&', '250,40'); FindAndInsert('###ИНН плательщика&', '0000000000'); FindAndInsert('###КПП плательщика&','000000000011'); FindAndInsert('###Плательщик&','ЗАО Селена'); FindAndInsert('###Р/С плательщика&','00000000000000000000'); FindAndInsert('###БИК плательщика&','000000'); FindAndInsert('###К/С плательщика&','00000000000000000000'); FindAndInsert('###ИНН получателя&','1111111111'); FindAndInsert ('###КПП получателя&', '111111111100'); FindAndInsert('###БИК получателя&','111111'); FindAndInsert ('###К/С получателя&', '11111111111111111111'); FindAndInsert ('###Р/С получателя&', '11111111111111111111'); FindAndInsert('###Получатель&','ЗАО Комета'); FindAndInsert ('###В.О.&', ' ') ; FindAndInsert('###H.П.&',' '); FindAndInsert('###Код&',' '); FindAndInsert('###C.П.&',' '); FindAndInsert('###0.П.&',' '); FindAndInsert('###Р.П.&',' '); FindAndInsert('#H1&', ' '); FindAndInsert('#H2&', ' '); FindAndInsert('#H3&', ' '); FindAndInsert('#H4&', ' '); FindAndInsert('#H5&', ' '); FindAndInsert('#H6&',' '); FindAndInsert('#H7&', ' '); FindAndInsert('###Назначение платежа&', 'Оплата за поставку товара'); end; end.
Результат выполнения приложения приведен на рисунке 2:
Рис.2. Результат работы приложения
Мы закончили рассматривать особенности применения WordBasic в приложениях Delphi. Объект Word.Application предоставляет больше возможностей чем WordBasic, например, доступ и программирование свойств элементов управления MS Word, что мы и рассмотрим в следующих шагах.
На следующем шаге мы рассмотрим элементы управления приложения MS Word.