В качестве примера возьмем формирование налоговой декларации, рассмот-
ренное ранее. В данном примере дополнительно отключаем все стандартные
панели Excel, блокируем доступ пользователя к изменению содержания до-
кумента и создаем пользовательскую панель, на которую поместим кнопки
печати и сохранения документа.
Процедура формирования документа "Налоговая декларация"
function FindAndReplace(find_,rep_:string):boolean;
var range:variant;
begin
FindAndReplace:=False;
if find_<>'' then begin
try
range:=Forml.E.Range['Al:EL230'].Replace(What:=find_,Replacement:=rep_);
FindAndReplace:=True;
except
FindAndReplace:=False;
end;
end;
end;
procedure TForml,Buttonl4Click(Sender: TObject);
var a_:integer;
CommandBar_:variant;
msbootom_:variant;
begin
for a_:=l to E.CommandBars.Count do
E.CommandBars.Item[a_].Enabled:=False;
// Создаем новый документ по шаблону
Е.WorkBooks.Add(ExtractFileDir(Application.ExeName)+
'\Декларация НДС.xls');
messagebox(handle,'Шаблон создан! Переходим к заполнению.1,
'Внимание!',0);
// Подставляем текст
FindAndReplace (' #ИНСПЕКЦИЯ&', 'Инспекция №1') ;
FindAndReplace('#0РГАНИЗАЦИЯ&','ЗАО "Сокол"');
for a_=1 to 12 do FindAndReplace('M'+inttostr(a_)+'&',INN.Text[aJ);
for a_=1 to 9 do FindAndReplace ('K' +inttostr (a_)+ '&'.,KPP.Text [a_]);
for a=1 to 15 do FindAndReplace('C'+inttostr(a_)+'&',(SUMMA.Text+' ')[a_]);
for a=1 to 2 do FindAndReplace('Д'+inttostr(a_)+'&',DATA.Text[a_]);
for a=1 to 2 do FindAndReplace('M'+inttostr(a_)+'&',DATA.Text[a_+3]);
for a=1 to 4 do FindAndReplace (' Г' +inttostr (aJ + 'S1, DATA. Text [a_+6] ) ;
E.ActiveSheet.Protect( DrawingObjects:=True, Contents:=True,
Scenarios: =True, Passv;ord: =' ') ;
ConmandBar_:=E.CommandBars.Add('Печать документа',msoBarTop, False,
True);
CommandBar_.Enabled:=T rue;
CommandBar_.Visible:=True;
CommandBar_.Protection:=msoBarNoMove;
for a_:=3 to 4 do begin
try
msbootom_:=CommandBar_.Controls.Add(Type:=msoControlButton,
ID:=inttostr(a ));
msbootom_.Caption:='ID='+inttostr(a_);
except
end;
end;
Messagebox(handle,'Возвращаем панели в исходное состояние!',
'Внимание!',0);
for a_:=1 to Е.CommandBars.Count do
Е.CommandBars.Item[a_].Enabled:=True;
end;
Результат выполнения процедуры представлен на рис. 16.27.
РИС. 16.27. Пользовательская настройка приложения Excel для печати документа
В предыдущих главах мы рассмотрели, как объект ExceLApplication исполь-
зуется для создания документов и управления ими, далее рассмотрим созда-
ние и использование динамических библиотек для приложений, форми-
рующих документы в приложениях Word и Excel, а также для их примене-
ния в проектах Visual Basic. |