Изменим процедуру формирования платежного поручения, рассмотренную
ранее. В данном примере мы дополнительно отключим все стандартные па-
нели Word, блокируем доступ пользователя к изменению содержания доку-
мента и создадим пользовательскую панель, на которой разместим кнопки
сохранения документа, выполнения печати и изменения масштаба отобра-
жения документа в окне Word.
Процедура формирования документа Платежное поручение
procedure TForml.Button14Click(Sender: TObject);
var a_:integer;
CommandBar_:variant;
msbootom_:variant;
begin
// Отключаем панели
for a__:=l to W. CommandBars. Count do
W.CommandBars.Item[a_].Enabled:=false;
// Создаем новый документ на основе шаблона
W.documents.Add(ExtractFileDir(Application.ExeName)+
'\Шаблон платежного поручения.dot');
// Подставляем текст
FindAndlnsert('###№ П.П.&',Ч');
FindAndlnsert('###Дата&',datetostr(date));
FindAndlnsert('###Вид платежа&', 'почтой');
FindAndlnsert('###Сумма прописью&','Двести пятьдесят рублей сорок '+
'копеек');
FindAndlnsert('###Сумма&','250, 40') ;
FindAndlnsert('###ИНН плателыцика&','0000000000');
FindAndlnsert('###КПП плателыцика&','000000000011');
FindAndlnsert('###Плательщик&','ЗАО Селена');
FindAndlnsert('###Р/С плателыцика&','00000000000000000000');
FindAndlnsert('###БИК плателыцика&','000000');
FindAndlnsert('###К/С плателыцика&', '00000000000000000000') ;
FindAndlnsert('###ИНН получателя&',4111111111');
FindAndlnsert('###КПП получателя&','111111111100');
FindAndlnsert('###БИК получателя&','111111');
FindAndlnsert('###К/С получателя&',41111111111111111111');
FindAndlnsert('###Р/С получателя&','11111111111111111111');
FindAndlnsert('###Получатель&','ЗАО Комета');
FindAndlnsert('###В.О.&', " ) ;
FindAndInsert('###H.n..&,'');
FindAndlnsert('###Код&','')
FindAndlnsert ('###C.П. &','');
FindAndlnsert('###0.П.&', '');
FindAndlnsert ('###P. П. &','');
FindAndlnsert('#H1&','');
FindAndlnsert('#H2&','');
FindAndlnsert('#H3&', '');
FindAndlnsert('#H4 &','');
FindAndlnsert('#H5&','');
FindAndlnsert('#H6&','');
FindAndlnsert('#H7 &',');
FindAndlnsert('###Назначение платежам ','Оплата за поставку товара');
// Блокируем возможность изменения документа пользователем
W.ActiveDocument.Protect(Password:='',NoReset:=False,
Type:=wdAllowOnlyFormFields);
// Создаем временную неперемещаемую панель
CommandBar_:=W.CommandBars.Add('Печать документа',msoBarTop,
False, True);
CommandBar_.Enabled:=true;
CoiranandBar_.Visible: =true;
CommandBar_.Protection :=insoBarNoMove;
// Создаем кнопки на панели
for a_:=3 to 7 do begin
try
msbootom_:=CommandBar_.Controls.Add(Type: =msoControlButton,
ID:=inttostr(a_));
msbootom_.Caption:='ID='+inttostr(a_);
except
end;
end;
end;
Результат выполнения процедуры представлен на рис. 10.21. После печати и
закрытия документа необходимо восстановить прежний вид панелей. Это
нетрудно сделать, используя методы программирования панелей и макросов.
Мы рассмотрели возможности объекта Word.Application, обеспечивающие
формирование документов Word. Конечно, это далеко не все его возможно-
сти, но даже они позволяют создавать документ Word посредством прило-
жений, разработанных в среде Delphi. Далее рассмотрены аналогичные воз-
можности использования объекта Excel.Application в приложениях Delphi.
Рис. 10.21. Пользовательская настройка приложения Word для печати документа |