|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
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
|
|||
|
|||
Что она выводит?
|
#3
|
|||
|
|||
Цитата:
данные из запроса const SQLText = 'select * from table ' |
#4
|
|||
|
|||
А почему в цикле явно задано 6 итераций, а разделов 5? Непонятно
Код:
for I := 0 to 5 do //5 - количество разделов А запрос какого формата? |
#5
|
|||
|
|||
Цитата:
потому что в вордовском документе весь первый столбец = уникальные названия раздела, и к каждому этому разделу идет сколько угодно под пунктов, которые выводятся с 2-го-5 столбец |
#6
|
|||
|
|||
Попробуйте свой код обрамить в [CODE*][*/CODE] (только без звездочек), а то неудобно читать.
|