procedure TForm1.Button1Click(Sender: TObject);
var tablica_:integer;
col_,row_:integer;
a_:integer;
metki_:array[1..12] of record
col:integer;
row:integer;
metka:string;
end;
tovar:array[1..2,1..12] of variant;
begin
// Заполняем массив данными.
Массив используется
//для простоты демонстрации, в
реальной программе
//данные берутся из базы данных.
tovar[1,1]:='Стул офисный'; tovar[1,2]:='шт.';
tovar[1,3]:=2; tovar[1,4]:=520.00; tovar[1,5]:=1040.00;
tovar[1,6]:='-'; tovar[1,7]:=20; tovar[1,8]:=208.0;
tovar[1,9]:=1248.00; tovar[1,10]:=62.40;
tovar[1,11]:='Россия';
tovar[1,12]:='-';
tovar[2,1]:='Телефон';
tovar[2,2]:='шт.';
tovar[2,3]:=3; tovar[2,4]:=315.25; tovar[2,5]:=945.75;
tovar[2,6]:='-'; tovar[2,7]:=20; tovar[2,8]:=189.15;
tovar[2,9]:=1134.90; tovar[2,10]:=56.70;
tovar[2,11]:='Беларусь'; tovar[2,12]:='-';
if CreateWord then begin
VisibleWord(true);
If OpenDoc(ExtractFileDir (application.ExeName) +'\sf.doc')
then begin
tablica_:=1;
for a_:=1 to 12 do begin
StartOfDoc;
if FindTextDoc('###M'+inttostr(a_)+'&') then
if GetSelectionTable then begin
messagebox(handle,'Находимся в таблице, запоминаем
метку(переменную), номер колонки и строки!',
pchar('Номер колонки/строки = '+inttostr(col_)+'/'+inttostr(row_)),0);
metki_[a_].col:=col_;
metki_[a_].row:=row_;
metki_[a_].metka:='###M'+inttostr(a_)+'&';
end;
end;
Messagebox(handle,'Заполняем первую строку','',0);
for a_:=1 to 12 do begin
SetTextToTable(tablica_,metki_[a_].row,metki_[a_].col,tovar[1,a_]);
end;
a_:=1;
Messagebox(handle,'Добавляем строку','',0);
InsertRowTableDoc(tablica_, metki_[a_].row);
Messagebox(handle,'Заполняем вторую строку','',0);
for a_:=1 to 12 do begin
SetTextToTable(tablica_,metki_[a_].row,metki_[a_].col,tovar[2,a_]);
end;
SaveDocAs(ExtractFileDir(application.ExeName)+'\Счет - фактура.doc');
Messagebox(handle,'Текст сохранен','',0);
CloseDoc;
end;
Messagebox(handle,' Текст закрыт','',0);
CloseWord;
end;
end;
|