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

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

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

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

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

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

Здраствуйте.
У меня сложилась такая ситуация: есть Stringgrid, в него добавляются строки из Edit-ов и Combobox-ов. В Combobox выбирается значение "есть" или "нет". Эти значения также отображаются в последней колонке Stringgrid. При нажатии кнопки "документ" данные из Stringgrid со значением в последней колонке "есть" отображаются в таблице 1 , а данные со значением "нет" - в таблице 2 одного шаблона Word. Т.е. в документе у меня 2 таблицы.
Чтобы не нагромождать код я убрал добавление строк из Stringgrid, оставил только нумерацию.
Код:
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.
Подскажите, пожалуйста, что здесь неверно?
Максон11 вне форума Ответить с цитированием
Старый 26.04.2011, 17:54   #2
Максон11
Пользователь
 
Регистрация: 10.02.2011
Сообщений: 11
По умолчанию

немного переделалал, но проблема все равно осталась
Код:
 //запуск цикла по строкам
    for   iRows:=1 to strngrd1.RowCount-1 do
    begin

         if strngrd1.Cells[19, iRows]='есть' then
         begin

             T.Rows.Add(N);
//объявленная переменная счетчика таблицы1
             for i:=1 to T.Rows.Count-1 do
              begin

             T.Cell(i+3 ,1).Range.Text:= IntToStr(i) + '.';

             end;
          end;

             if strngrd1.Cells[19, iRows]='нет' then
             begin

                L.Rows.Add(M);
//переменная для таблицы2
                for j:=1 to L.Rows.Count-1 do
              begin
               L.Cell(j+3 ,1).Range.Text:= IntToStr(j) + '.';

               end;

             end;
Что тут не так, подскажите, пожалуйста
Максон11 вне форума Ответить с цитированием
Старый 26.04.2011, 18:07   #3
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
Проще всего (или разумней ) в шаблоне Word во второй таблице задать для нумерации "Начать заново" в той колонке где идёт нумерация.
До свидания
OlegVE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Stringgrid и таблица Word Максон11 Помощь студентам 0 11.04.2011 13:42
Delphi7. Таблица StringGrid. Olga67_net Помощь студентам 2 13.05.2010 08:29
таблица stringgrid Hilda Помощь студентам 6 06.05.2010 21:37
Таблица, массив, цикл и ошибка Marsel737 Общие вопросы Delphi 4 18.03.2010 20:52
Таблица в WORD xakkkkker Общие вопросы Delphi 4 15.08.2009 21:02