Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
8-1130080534
!Trinix
2005-10-23 19:15
2006.03.26
3D painting


4-1135438757
_duk
2005-12-24 18:39
2006.03.26
Приемник


2-1141579643
I am
2006-03-05 20:27
2006.03.26
Как перезагрузть компьютер?


3-1138788233
AlAnNik
2006-02-01 13:03
2006.03.26
Проблема с MSDE


2-1142248218
Fenix
2006-03-13 14:10
2006.03.26
WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский