Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.04.2011, 11:37
Максон Максон вне форума
Прохожий
 
Регистрация: 10.02.2011
Сообщения: 19
Репутация: 10
По умолчанию из Stringgrid в 2 таблицы Word

Здраствуйте.
У меня сложилась такая ситуация: есть 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.
Подскажите, пожалуйста, что здесь неверно?
Ответить с цитированием
  #2  
Старый 26.04.2011, 17:56
Максон Максон вне форума
Прохожий
 
Регистрация: 10.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

немного переделал, добавление строк идет, но в конце нумерации появляются совсем другие числа
Код:
 //запуск цикла по строкам
    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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025