Здраствуйте.
У меня сложилась такая ситуация: есть Stringgrid, в него добавляются строки из Edit-ов и Combobox-ов. В Combobox выбирается значение "есть" или "нет". Эти значения также отображаются в последней колонке Stringgrid. При нажатии кнопки "документ" данные из Stringgrid со значением в последней колонке "есть" отображаются в таблице 1 , а данные со значением "нет" - в таблице 2 одного шаблона Word. Т.е. в документе у меня 2 таблицы.
Чтобы не нагромождать код я убрал добавление строк из Stringgrid, оставил только нумерацию.
Код:
procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T,L,M, N: Variant;
iRows :Integer;
begin
W := CreateOleObject('Word.Application');
W.Visible:=True;
W.DisplayAlerts:=True;
try
W.Documents.Open(GetCurrentDir +'\mmm.dot',EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
// обозначение таблицы ее номера
T:=W.ActiveDocument.Tables.Item(1);
// обозначение номера строки в определенной таблице
N:=W.ActiveDocument.Tables.Item(1).Rows.Item(4);
L:=W.ActiveDocument.Tables.Item(2);
// обозначение номера строки в определенной таблице
M:=W.ActiveDocument.Tables.Item(2).Rows.Item(4);
//запуск цикла по строкам, т.к. количество столбцов фиксировано
for iRows:=1 to strngrd1.RowCount-1 do
begin
T.Rows.Add(N);//добавление строк в таблице 1
L.Rows.Add(M);//добавление строк в таблице 2
//если 19 колонка и строка = "есть" тогда
if strngrd1.Cells[19, iRows]='есть' then
begin
//нумерация строкв таблице 1
T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows) + '.';
//заполнение таблицы данными
//.....
end;
//если 19 колонка и строка = "нет" тогда
if strngrd1.Cells[19, iRows]='нет' then
begin
//нумерация строк в таблице 2
L.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows) + '.';
//заполнение таблицы данными
end;
end;
finally
end;
end;
При вводе в Stringgrid данных , например, 2 строки с событием "есть" и 2 строки с событием "нет" в 2-х таблицах ворд добавляются по 4 строки и нумерация идет дальше, в таблице1 нумерация 1,2 , в таблице 2 нумерация 3,4.
Подскажите, пожалуйста, что здесь неверно?