Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Уже было но всё же .... CRYSTAL REPORT
|
|||
|---|---|---|---|
|
#18+
Как создать полностью динамический отчет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 10:23 |
|
||
|
Уже было но всё же .... CRYSTAL REPORT
|
|||
|---|---|---|---|
|
#18+
Ниже приведен текст модуля для создания полностью динамический отчета используя настройки DBGrid 'а (расположения колонок и их свойства). Если в качестве DBGrid 'а используется TRxDBGrid то высота строк определяется параметром RxDBGrid.RowsHeight. Написан давно под Delphi 5. //---------пример вызова---------// uses FokGrRep,Printers; procedure TForm.PrintClick(Sender: TObject); var Fr:TFokGrRep; RepPrinter:TPrinter; begin Fr:=TFokGrRep.CreateGridRep(Self,DbGrid1.Columns); try RepPrinter:=Printer; Fr.Page.Orientation:=RepPrinter.Orientation; Fr.Page.Length:=RepPrinter.PageHeight; Fr.Page.Width:=RepPrinter.PageWidth; Fr.ReportTitle:= 'ReportTitle'; Fr.PreviewModal; finally Fr.Free; end; end; //---------------------------------сам модуль--------------// unit FokGrRep; {$l-} {$Y-} {$D-} {$C-} interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Qrctrls,qrprntr, QuickRpt, ExtCtrls, Grids, DBGrids, Db, RxDBCtrl,Printers,QRExport; type TFokGrRep=Class(TQuickRep) private { Private declarations } ColLb:TQRLabel; ColSh:TQRShape; ColText:TQRDBText; GrColumns: TDBGridColumns; DetailBand: TQRBand; ColumnHeaderBand: TQRChildBand; TitleBand: TQRBand; procedure CreateColShVr(Control:TWinControl;const LeftSm:Integer); procedure CreateColShHr(Control:TWinControl;const ShWidth,TopSm:Integer); procedure CreateColLb(Control:TWinControl;Column:TColumn;const LeftSm:Integer); procedure CreateColText(Control:TWinControl;Column:TColumn;const LeftSm:Integer); published TextFilter:TQRTextFilter; TitleSysDate: TQRSysData; TitleSysPage: TQRSysData; TitleSysRepTitle: TQRSysData; TitleLabelText: TQRLabel; public { Public declarations } constructor CreateGridRep(AOwner:TComponent;Columns:TDBGridColumns); end; implementation constructor TFokGrRep.CreateGridRep(AOwner:TComponent;Columns:TDBGridColumns); var Id,LeftSm,FontPic:integer; GrFieldType:set of TFieldType; begin inherited Create(AOwner); Self.ShowProgress:=True; Self.PrintIfEmpty:=False; Self.Page.Orientation:=poLandscape; TextFilter:=TQRTextFilter.Create(Self); TitleBand:=TQRBand.Create(Self); with TitleBand do begin Parent:=Self; BandType:=rbPageHeader; Height:=40; end; Self.AddBand(TitleBand); TitleLabelText:=TQRLabel.Create(TitleBand); with TitleLabelText do begin Parent:=TitleBand; Caption:='Стр.№'; Left:=9; Top:=16; end; TitleSysDate:=TQRSysData.Create(TitleBand); with TitleSysDate do begin Parent:=TitleBand; Data:=qrsDate; Left:=106; Top:=TitleLabelText.Top; end; TitleSysPage:=TQRSysData.Create(TitleBand); with TitleSysPage do begin Parent:=TitleBand; Data:=qrsPageNumber; Top:=TitleLabelText.Top; Left:=TitleLabelText.Left+TitleLabelText.Width+2; end; TitleSysRepTitle:=TQRSysData.Create(TitleBand); with TitleSysRepTitle do begin Parent:=TitleBand; Data:=qrsReportTitle; Top:=0; AlignToBand:=True; Alignment:=taCenter; end; TitleBand.HasChild:=True; ColumnHeaderBand:=TitleBand.ChildBand; DetailBand:=TQRBand.Create(Self); with DetailBand do begin Parent:=Self; BandType:=rbDetail; end; Self.AddBand(DetailBand); GrColumns:=Columns; GrFieldType:=[ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftDate, ftTime, ftDateTime, ftBytes]; // Типы полей LeftSm:=0; with (GrColumns.Grid as TDBGrid) do begin Self.DataSet:=DataSource.DataSet; FontPic:=Self.TextHeight(TitleFont,'FOK')+5; ColumnHeaderBand.Height:=abs(FontPic); if GrColumns.Grid is TRxDBGrid then FontPic:=(GrColumns.Grid as TRxDBGrid).RowsHeight else FontPic:=Self.TextHeight(Font,'FOK')+5; DetailBand.Height:=ABS(FontPic); end; CreateColShVr(ColumnHeaderBand,LeftSm); CreateColShVr(DetailBand,LeftSm); Inc(LeftSm,ColSh.Width); with GrColumns do begin for Id:=0 to Count-1 do begin if (Items[Id].Field.DataType in GrFieldType) and (Items[Id].Visible) then begin CreateColLb(ColumnHeaderBand,Items[Id],LeftSm); CreateColText(DetailBand,Items[Id],LeftSm); Inc(LeftSm,ColLb.Width); CreateColShVr(ColumnHeaderBand,LeftSm); CreateColShVr(DetailBand,LeftSm); Inc(LeftSm,ColSh.Width); end; end; Dec(LeftSm,ColSh.Width); Inc(LeftSm,1); CreateColShHr(ColumnHeaderBand,LeftSm,0); CreateColShHr(ColumnHeaderBand,LeftSm,ColumnHeaderBand.Height-1); CreateColShHr(DetailBand,LeftSm,DetailBand.Height-1); end; end; procedure TFokGrRep.CreateColText(Control:TWinControl;Column:TColumn;const LeftSm:Integer); begin ColText:=TQRDBText.Create(Control); with ColText do begin Parent:=Control; AlignToBand:=False; AutoSize:=False; AutoStretch:=False; Left:=LeftSm; WordWrap:=False; Top:=2; Width:=Column.Width; Font:=Column.Font; Font.Color:=clBlack; Transparent:=False; Alignment:=Column.Alignment; DataSet:=(Column.Grid as TDBGrid).DataSource.DataSet; DataField:=Column.FieldName; Height:=Control.Height-Top-1; end; end; procedure TFokGrRep.CreateColLb(Control:TWinControl;Column:TColumn;const LeftSm:Integer); begin ColLb:=TQRLabel.Create(Control); with ColLb do begin Parent:=Control; AlignToBand:=False; AutoSize:=False; AutoStretch:=False; WordWrap:=False; Left:=LeftSm; Top:=1; Caption:=Column.Title.Caption; Width:=Column.Width; Font:=Column.Title.Font; Font.Color:=clBlack; Transparent:=False; Alignment:=Column.Title.Alignment; Height:=Control.Height-1; end; end; procedure TFokGrRep.CreateColShVr(Control:TWinControl;const LeftSm:Integer); begin ColSh:=TQRShape.Create(Control); with ColSh do begin Parent:=Control; Shape:=qrsVertLine; Pen.Color:=clBlack; Pen.Width:=1; Top:=0; Width:=1; Left:=LeftSm; Height:=Control.Height; end; end; procedure TFokGrRep.CreateColShHr(Control:TWinControl;const ShWidth,TopSm:Integer); begin ColSh:=TQRShape.Create(Control); with ColSh do begin Parent:=Control; Shape:=qrsHorLine; Pen.Color:=clBlack; Pen.Width:=1; Top:=TopSm; Left:=1; Width:=ShWidth-Left; Height:=1; end; end; end. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 11:24 |
|
||
|
Уже было но всё же .... CRYSTAL REPORT
|
|||
|---|---|---|---|
|
#18+
Пока не разбирался но ОГОМНЕЙШЕЕ спасибо :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 12:18 |
|
||
|
Уже было но всё же .... CRYSTAL REPORT
|
|||
|---|---|---|---|
|
#18+
Если бы оно было бы на ВБ или на С# :-( я делфей совсем не знаю .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 13:23 |
|
||
|
Уже было но всё же .... CRYSTAL REPORT
|
|||
|---|---|---|---|
|
#18+
Краткий ответ на вопрос "Как создать полностью динамический отчет": Руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1016&tid=1438775]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 358ms |

| 0 / 0 |
