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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.04.2015, 11:35
koly86 koly86 вне форума
Прохожий
 
Регистрация: 09.01.2007
Сообщения: 3
Репутация: 10
Радость Word 2000, вывод таблицы

Может кому то будет интересно.
Код:
   
    ConnectionWord(self);
    ItemN:=1;  //таблица в вордовском документе
       row:=2;  //Строка
        j:=1;  //Столбец
       ii:=2; //Первая строка для объединения строк
 numLines:=1;  //хранит количество добавленных строк

for I := 0 to 5 do //6 - количество разделов
  begin
    TD:=TadoQuery.create(nil);
    with TD do
      begin
        try
            connection:=DataModule1.ADOConnection;
            sql.Text:=Format(SQLtext,[inttostr(i),inttostr(KafCode), inttostr(LearnYear)]);
            ExecSQL;
            open;
        if td.RecordCount < 1 then  //Если пусто добавляет пустую строку 
          begin
            if numLines > 1 then   WDoc.Tables.Item(ItemN).Rows.Add(EmptyParam);
             WDoc.Tables.Item(ItemN).Cell(row+numLines,j).Range.Text:= RazdelName(i);
              numLines := numLines+1;
              row:=row+1;
              ii:=ii+1;
           end;
        while not TD.Eof do
          begin
             for Ind := 0 to td.RecordCount-1 do //Количество записей в подразделе
                  begin
                     if numLines > 1 then   WDoc.Tables.Item(ItemN).Rows.Add(EmptyParam);
                       WDoc.Tables.Item(ItemN).Cell(row, 2).Range.Text:=  td.FieldByName('Meripriyt').AsString;
                       WDoc.Tables.Item(ItemN).Cell(row, 3).Range.Text:=  td.FieldByName('Srok_vip').AsString;
                       WDoc.Tables.Item(ItemN).Cell(row, 4).Range.Text:=  td.FieldByName('Otvetstven').AsString;
                       WDoc.Tables.Item(ItemN).Cell(row, 5).Range.Text:=  td.FieldByName('Note').AsString;

                     td.Next;
                     numLines := numLines+1;
                     inc(row);
                  end;
                     WDoc.Tables.Item(ItemN).Cell(i+numLines,j).Range.Text:= td.FieldByName('NAME_VIDDEYAT').AsString;
                     if td.RecordCount > 1 then
                        begin
                           WDoc.Tables.Item(ItemN).Cell(ii,j).Merge(WDoc.Tables.Item(ItemN).Cell(1+numLines,j));
                           ii:= numLines+1;
                        end;
                           ii:= numLines+1;

         end;
        finally
           Free;
            

        end;
   WApp.Visible := true;
  end;

Последний раз редактировалось koly86, 16.04.2015 в 10:26.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter