Экспорт данных из Stringgrid в таблицу шаблона word
Здраствуйте.
У меня возникла такая проблема:
Нужно экспортировать данные из Stringgrid в заданную таблицу шаблона word.
Код:
procedure TForm2.DocbtnClick(Sender: TObject);
var
W, T, N: Variant;
iRows,Cols, i: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);
// обозначение номера строки в таблице 1
//Данные будут вноситься с 4 строки
N:=W.ActiveDocument.Tables.Item(1).Rows.Item(4);
// запуск цикла строк от 1 до последнего кол-ва в стринггриде
for i:=1 to strngrd1.RowCount-1 do
// добавление строк
T.Rows.Add(N);
//запуск цикла по строкам и столбцам
for iRows:=1 to strngrd1.RowCount-1 do
for Cols:=1 to strngrd1.ColCount-1 do
// нумерация строчек
T.Cell(iRows+3 ,1).Range.Text:= IntToStr(iRows ) + '.';
//ВОТ ДО ЭТОГО МОМЕНТА ВСЕ РАБОТАЕТ
//ЭТОТ КОД ТОЖЕ РАБОЧИЙ ТОЛЬКО ДОБАВЛЯЕТСЯ 1 СТРОКА
{T.Cell(4,2).Range.Text:= strngrd1.Cells[0,1]+#13+ strngrd1.Cells[1,1]+#13+ strngrd1.Cells[2,1];
T.Cell(4,3).Range.Text:= strngrd1.Cells[3,1];
T.Cell(4,4).Range.Text:= strngrd1.Cells[4,1];
T.Cell(4,5).Range.Text:= strngrd1.Cells[5,1];
T.Cell(4,6).Range.Text:= strngrd1.Cells[6,1];
T.Cell(4,7).Range.Text:= strngrd1.Cells[7,1]+','+#13+ strngrd1.Cells[8,1]+','+#13+ strngrd1.Cells[9,1];
T.Cell(4,8).Range.Text:= strngrd1.Cells[10,1];
T.Cell(4,9).Range.Text:= strngrd1.Cells[11,1]+#13+ strngrd1.Cells[12,1];
T.Cell(4,10).Range.Text:= strngrd1.Cells[13,1];
T.Cell(4,12).Range.Text:= strngrd1.Cells[14,1];
T.Cell(4,13).Range.Text:= strngrd1.Cells[15,1];
T.Cell(4,14).Range.Text:= strngrd1.Cells[16,1];
T.Cell(4,15).Range.Text:= strngrd1.Cells[17,1];}
finally
end;
end;
Вопрос в том как добавлять все строки из Stringgrid, ведь их количество определяется как strngrd1.RowCount.
Все перерыл, ведь запускается цикл от 1
for iRows:=1 to strngrd1.RowCount-1 do
например, делал вот так
Код:
T.Cell(iRows+3,3).Range.Text:= strngrd1.Cells[3,iRows-1];
//Тут ошибка
при компиляции выдает такое ссобщение
[Warning] Elector.pas(367): FOR-Loop variable 'iRows' may be undefined after loop
Наведите на правильную мыслю
|