Форум по 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.
Ответить с цитированием
  #2  
Старый 15.04.2015, 11:54
Zefirinka Zefirinka вне форума
Прохожий
 
Регистрация: 15.04.2015
Сообщения: 3
Версия Delphi: 10
Репутация: 10
По умолчанию

Что она выводит?
Ответить с цитированием
  #3  
Старый 15.04.2015, 12:03
koly86 koly86 вне форума
Прохожий
 
Регистрация: 09.01.2007
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Zefirinka
Что она выводит?

данные из запроса
const SQLText = 'select * from table '
Ответить с цитированием
  #4  
Старый 15.04.2015, 12:08
Zefirinka Zefirinka вне форума
Прохожий
 
Регистрация: 15.04.2015
Сообщения: 3
Версия Delphi: 10
Репутация: 10
По умолчанию

А почему в цикле явно задано 6 итераций, а разделов 5? Непонятно
Код:
for I := 0 to 5 do //5 - количество разделов

А запрос какого формата?
Ответить с цитированием
  #5  
Старый 15.04.2015, 12:20
koly86 koly86 вне форума
Прохожий
 
Регистрация: 09.01.2007
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Zefirinka
А почему в цикле явно задано 6 итераций, а разделов 5? Непонятно
Код:
for I := 0 to 5 do //5 - количество разделов

А запрос какого формата?

потому что в вордовском документе весь первый столбец = уникальные названия раздела, и к каждому этому разделу идет сколько угодно под пунктов, которые выводятся с 2-го-5 столбец
Ответить с цитированием
  #6  
Старый 15.04.2015, 12:23
Zefirinka Zefirinka вне форума
Прохожий
 
Регистрация: 15.04.2015
Сообщения: 3
Версия Delphi: 10
Репутация: 10
По умолчанию

Попробуйте свой код обрамить в [CODE*][*/CODE] (только без звездочек), а то неудобно читать.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter