Разработаем прототип шаблона платежного поручения. Чтобы облегчить
себе задачу, воспользуемся справочно-правовой системой "Гарант" и полу-
чим форму платежного поручения в формате DOC. Отредактируем этот до-
кумент и приведем его к виду, показанному на рис. 9.10. Далее сохраним
его в формате шаблона (файл с расширением DOT) для последующего ис-
пользования в процедуре формирования выходной формы документа "Пла-
тежное поручение".
Как показано на рис. 9.10, преобразование документа в шаблон заключается
в том, что в некоторые ячейки внесен текст типа "###Сумма прописью&".
Эти фрагменты текста и представляют собой текстовые константы, исполь-
зуемые для подстановки информации из программы.
Рис. 9.10. Вид шаблона документа "Платежное поручение"
Используем этот шаблон для создания документа. Следующий фрагмент
программы демонстрирует, как это сделать.
Формирование платежного поручения
// Данная функция позволяет находить строку FindText
/ / и подставлять на ее место строку ReplacementText.
function FindAndlnsert(FindText,ReplacementText:string):boolean;
label 0,1,2;
begin
Forml.WB.StartOfDocument;
1: Forml.WB.Edi tFind(FindText);
if Forml.WB.EditFindFound then begin Forml.WB.insert(ReplacementText);
goto 1;
end;
end;
// Данная процедура заполняет шаблон документа.
//Pocedure TForml.Buttonl4Click(Sender: TObject);
begin
// Создаем новый документ по шаблону
W.documents.Add(ExtractFileDir(Application.ExeName)+' \Д1аблон платежного' +
' поручения.dot') ;
WB.TableGridlines(false) ;
// Подставляем текст.
FindAndlnsert('###№ П.П.&',4');
FindAndlnsert('###Дата&',datetostr(date));
FindAndlnsert('###Вид платежам','почтой');
FindAndlnsert('###Сумма прописью&','Двести пятьдесят рублей сорок
копеек');
FindAndlnsert('###Сумма&','250,40');
FindAndlnsert('###ИНН плателыцика&','0000000000') ;
FindAndlnsertС###КПП плателыцика&','000000000011');
FindAndlnsert('###Плателыцик&','ЗАО Селена');
FindAndlnsert('###Р/С плателыцика&','00000000000000000000');
FindAndlnsert('###БИК плателыцика&','000000');
FindAndlnsert('###К/С плателыцика&','00000000000000000000');
FindAndlnsert('###ИНН получателя&','1111111111');
FindAndlnsert('###КПП получателя&',411111111100');
FindAndlnsert('###БИК получателя&','111111');
FindAndlnsert('###К/С получателя&',41111111111111111111');
FindAndlnsert('###Р/С получателя&','11111111111111111111');
FindAndlnsert('###Получатель&','ЗАО Комета');
FindAndlnsertС###В.О.&',' ' );
FindAndlnsert( ' # # # H . n . & \ ' ' ) ;
FindAndlnsert ('###Код&', ' ' ) ;
FindAndlnsert( ' # # # C . n . & ' , ' ' ) ;
FindAndlnsert('###0.П.&',' ' ) ;
FindAndlnsert('###P.П.&', ' ' ) ;
FindAndlnsert('#H1&',' ');
FindAndlnsert('#H2&', ' ');
FindAndlnsert('#H3&',' ');
FindAndlnsert('#H4 &', ' ');
FindAndlnsert('#H5&', ' ');
FindAndlnsert('#H6&', ' ');
FindAndlnsert('#H7 &', ' ');
FindAndlnsert('###Назначение платежа& ','Оплата за поставку товара');
end;
Представленный здесь текст программы показывает, что большой разницы
между реализацией в WordBasic и в Visual Basic почти нет, но некоторые
отличия все же есть. Какие и чем они обусловлены? Они очевидны и вы
можете их легко обнаружить сами. Результат выполнения данной процедуры
показан на рис. 9.11.
Рис. 9.11. Сформированный документ "Платежное поручение"
После создания документа можно переходить к его печати.
В этой главе мы рассмотрели особенности применения WordBasic в прило-
жениях Delphi. Далее нет необходимости углубляться в эту тему, т. к. объект
WordApplication предоставляет больше возможностей, например, доступ и
программирование свойств элементов управления MS Word, что мы и рас-
смотрим в следующей главе. |