Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 08:28   #1
Максон11
Пользователь
 
Регистрация: 10.02.2011
Сообщений: 11
По умолчанию экспорт из Stringgrid в таблицу шаблона документа

День добрый!
Ребята посоветуйте пожалуйста как быть в данной ситуации

Нужно чтобы все строки вводимы в Stringgrid экспортировались в таблицу

Код:
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
Максон11 вне форума Ответить с цитированием
Старый 14.04.2011, 09:41   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
for   Cols:=1 to strngrd1.ColCount-1 do
BEGIN // !!!!!!!
// всё остальное
end;
в код не вдумывался, но текст ошибки говорит, что вы ВНЕ цикла обращаетесь к переменной-итератору, а код позволяет заключить все нужные команды В ЦИКЛ

Последний раз редактировалось phomm; 14.04.2011 в 09:44.
phomm вне форума Ответить с цитированием
Старый 14.04.2011, 09:47   #3
Максон11
Пользователь
 
Регистрация: 10.02.2011
Сообщений: 11
По умолчанию

Спасибо, огромное!!
Точно работает!!!
Максон11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из StringGrid в Word Polotenchik Общие вопросы Delphi 12 23.09.2011 23:22
Экспорт массива в таблицу Word Smerch66 Общие вопросы Delphi 1 30.01.2011 10:46
экспорт из StringGrid в Word Бусурманин хлоров Общие вопросы Delphi 1 11.12.2010 09:20
Создание шаблона документа niziriska Общие вопросы .NET 1 30.04.2010 12:05
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15