Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Таблица в отчет   Найти похожие ветки 

 
xroot   (2006-03-09 08:20) [0]

Как мне, исп. qreports вывести в отчете целую таблицу.
То есть необходимо вывести все колонки ADO таблицы. Проблема заключается в:
1) необходимо соблюдать ширину самой длинной записи в колонке
2) если все колонки не влезают на лист, оставшиеся перенести на другой.
Подскажите как это реализовать


 
xroot   (2006-03-09 09:36) [1]

Вроде нашел подходящий кусок кода.
Такой вопрос: вообще можно ли в QReports управлять выводом по страницам? Если можно то как? Если нет посоветуйте подходящий компонент


 
Sergey13 ©   (2006-03-09 09:39) [2]

>Подскажите как это реализовать
Гораздо сложнее реализовать НЕ так. Используй соответствующие бенды и все.


 
xroot   (2006-03-09 10:12) [3]

Если не сложно, помогите переделать этот кусок.

procedure TTGridReport.Preview(Grid: TDBGrid);
var
 i, CurrentLeft, CurrentTop : integer;
 BMark: TBookmark;
begin

 GridRep.Dataset:=Grid.DataSource.DataSet;

 if not GridRep.Bands.HasColumnHeader then
   GridRep.Bands.HasColumnHeader:=true;

 if not GridRep.Bands.HasDetail then
   GridRep.Bands.HasDetail:=true;

 GridRep.Bands.ColumnHeaderBand.Height:=Abs(Grid.TitleFont.Height) + 10;
 GridRep.Bands.DetailBand.Height:=Abs(Grid.Font.Height) + 10;
 CurrentLeft := 12;
 CurrentTop := 6;

 BMark:=Grid.DataSource.DataSet.GetBookmark;
 Grid.DataSource.DataSet.DisableControls;
 try
   for i:=0 to Grid.FieldCount - 1 do
   begin
     if (CurrentLeft + Canvas.TextWidth(Grid.Columns[i].Title.Caption)) >
       (GridRep.Bands.ColumnHeaderBand.Width) then
     begin
{вот здесь происходит переход на новую строку если страница закончилась (по вертикали), а нужно чтобы переходило на новую страницу}        
CurrentLeft := 12;
       CurrentTop := CurrentTop + Canvas.TextHeight("A") + 6;
       GridRep.Bands.ColumnHeaderBand.Height := GridRep.Bands.ColumnHeaderBand.Height +
         (Canvas.TextHeight("A") + 10);
       GridRep.Bands.DetailBand.Height := GridRep.Bands.DetailBand.Height +
         (Canvas.TextHeight("A") + 10);
     end;
     with TQRLabel.Create(GridRep.Bands.ColumnHeaderBand) do
     begin
       Parent := GridRep.Bands.ColumnHeaderBand;
       Color := GridRep.Bands.ColumnHeaderBand.Color;
       Left := CurrentLeft;
       Top := CurrentTop;
       Caption:=Grid.Columns[i].Title.Caption;
     end;
     with TQRDbText.Create(GridRep.Bands.DetailBand) do
     begin
       Parent := GridRep.Bands.DetailBand;
       Color := GridRep.Bands.DetailBand.Color;
       Left := CurrentLeft;
       Top := CurrentTop;
       Alignment:=Grid.Columns[i].Alignment;
       AutoSize:=false;
       AutoStretch:=true;
       Width:=Grid.Columns[i].Width;
       Dataset:=GridRep.Dataset;
       DataField:=Grid.Fields[i].FieldName;
       CurrentLeft:=CurrentLeft + (Grid.Columns[i].Width) + 10;
     end;
   end;

   GridRep.PreviewModal;

 finally
   with Grid.DataSource.DataSet do
   begin
     GotoBookmark(BMark);
     FreeBookmark(BMark);
     EnableControls;
   end;
 end;
end;


 
xroot   (2006-03-09 13:28) [4]

Неужели ни у кого нет идей


 
Sergey13 ©   (2006-03-09 13:34) [5]

Так ты в рантайме все это хочешь сформировать. Я думал в дизайне проблема.
В EhLib-е это реализовано. Скачай, посмотри, там с исходниками.


 
xroot   (2006-03-09 13:38) [6]

А в QReport ни как? Просто не хо4ется исп. стороние компоненты.
А EhLib бесплатен?


 
Sergey13 ©   (2006-03-09 13:39) [7]

2 [6] xroot   (09.03.06 13:38)
>А в QReport ни как? Просто не хо4ется исп. стороние компоненты.
Я ж не предлагаю использовать. Предлагаю посмотреть.

>А EhLib бесплатен?
До версии 3.6 да.


 
xroot   (2006-03-09 13:42) [8]

На офсайте нет ссылок на старые версии, а 4.10 платная.
Где можно выкачать более ранние версии?



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
15-1140528782
Knight
2006-02-21 16:33
2006.03.26
Тут кто-нибудь парле по франсе?


15-1141599465
Andy BitOff
2006-03-06 01:57
2006.03.26
Помогите понять код на С


2-1141966444
Mozart
2006-03-10 07:54
2006.03.26
Модем


6-1134651981
(CHALING 32)S K i N E R
2005-12-15 16:06
2006.03.26
Голосовой чат!


10-1110390853
Nicolas1989
2005-03-09 20:54
2006.03.26
Как вставить строку в Excel через ExcelApplication?