Шаг 99.
Автоматизация Microsoft Word. Работа с объектом WordBasic. Пример: платежное поручение

    На этом шаге мы рассмотрим небольшой пример, иллюстрирующий использование 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.
Текст этого приложения вместе с шаблоном можно взять здесь (11,4 Кб).

    Результат выполнения приложения приведен на рисунке 2:


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

    Мы закончили рассматривать особенности применения WordBasic в приложениях Delphi. Объект Word.Application предоставляет больше возможностей чем WordBasic, например, доступ и программирование свойств элементов управления MS Word, что мы и рассмотрим в следующих шагах.

    На следующем шаге мы рассмотрим элементы управления приложения MS Word.




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