Imprimir DBGrid usando QuickReport

Imprimir DBGrid usando QuickReport

Vamos precisar da unit Report, abra o menu File|New Other e na guia New procure por Report Na guia das vcls procure pelo QuickReport e coloque QRLABEL e 2 QRSysData: 3 bandas e 3

1 - QRBAND1 - Na propriedade QRBandType escolha rbPageHeader 2 - QRBAND2 - Na propriedade QRBandType escolha rbColumnHeader 3 - QRBAND3 - Na propriedade QRBandType escolha rbDetail 1 - QRLABEL1 - Na propriedade Caption Coloque 'DATA' 1.1 - QRSysData1 - Na propriedade Data escolha qrs Date 2 - QRLABEL2 - Vai ser o título do seu relatório 3 - QRLABEL3 - Na propriedade Caption coloque 'PÁGINA Nº' 3.1 - QRSysData2 - Na propriedade Data escolha qrsPageNumber Na seção Type crie a seguinte Class Procedure : Type public Class procedure PrintDBGrid (ADBGRid :TExDBGrid ; Nome_Relatorio: string); // CTRL+C para implementar end; Na implementation : class procedure TqrRelatorioPadrao. PrintDBGrid (ADBGRid: TExDBGrid; Nome_Relatorio: string); var i, posi: Integer; col: TQRLabel; fld: TQRDBText; begin posi := 0; qrRelatorioPadrao := TqrRelatorioPadrao. Create(nil); qrRelatorioPadrao. QRLabel2.Caption := Nome_Relatorio; with qrRelatorioPadrao do begin DataSet := ADBGrid. DataSource .DataSet; for i := 0 to Pred(ADBGrid.columns.Count) do begin // Cabeçalho das Colunas col := TQRLabel. Create(qrRelatorioPadrao ); col.Parent := qrRelatorioPadrao. QRBand2; col.Caption := ADBGrid. Columns[i].Title.Caption; col.Top := 4; col.Left := posi; // Linhas de detalhes

DataSet := DataSet.FieldName .Left := posi. QRBand3. begin Relatorio. Na var da unit que você vai usar a unit unQRRelatorioPadrao unit unFAuditoria. end. type private { Private declarations } public { Public declarations } end. Create(qrRelatorioPadrao ).Field. Columns[i]. fld. begin Relatorio := NIL. Preview.fld := TQRDBText. interface uses unQRRelatorioPadrao. var Relatorio: TqrRelatorioPadrao. Agora é só colocar essa unit na USES da unit (Interface) que você deseja usar. end. Você terá que mudar para o DBGrid normal do Delphi. No evento onCreate da unit procedure TfrmAuditoria.Top := 4.Width + 25. end. fld. .DataField := ADBGrid. end. E finalmente no evento onClick do botão imprimir procedure TfrmAuditoria. posi := posi + ADBGrid. Relatorio := TqrRelatorioPadrao. Columns[i]. 'AUDITORIA DE DADOS' ). Create(NIL). FormCreate (Sender: TObject). Observação como uso um componente de terceiros chamado ExDBGrid uso ele para fazer a conexão do DBGrid com o Report. caso não tenha esse componente. PrintDBGrid (ExDBGrid1. fld. end.Parent := qrRelatorioPadrao. fld. fld. SpeedButton3Click (Sender: TObject).

Classes. col. ExtCtrls. QRBand2. SysUtils. QuickRpt.DataSet. Nome_Relatorio: string). ExDBG rid. fld: TQRDBText.Parent := qrRelatorioPadrao. Forms. interface uses Windows. Controls. col.Count) do begin // Cabeçalho das Colunas col := TQRLabel. end. begin posi := 0. Columns[i]. // qrsPageNumber public Class procedure PrintDBGrid (ADBGRid :TExDBGrid . QRLabel2. // Título do Relatório QRLabel3: TQRLabel. posi: Integer. PrintDBGrid (ADBGRid: TExDBGrid. Create(nil).Caption := Nome_Relatorio. for i := 0 to Pred(ADBGrid. var qrRelatorioPadrao: TqrRelatorioPadrao. qrRelatorioPadrao. // qrsDate QRSysData2: TQRSysData. var i. Messages. // rbPageHeader QRBand2: TQRBand. . with qrRelatorioPadrao do begin DataSet := ADBGrid.Title.Código completo da dica: unit unQRRelatorioPadrao. col: TQRLabel. qrRelatorioPadrao := TqrRelatorioPadrao. criação dos componentes TQRLabel e TQRDBText dinamicamente } class procedure TqrRelatorioPadrao.Caption. type TqrRelatorioPadrao = class(TQuickRep) QRBand1: TQRBand.columns. // rbDetail QRLabel1: TQRLabel.DFM} { TqrRelatorioPadrao. implementation {$R *. QRCtrls. // "PÁGINA Nº" QRSysData1: TQRSysData. DataSource . StdCtrls. Graphics. // rbColumnHeader QRBand3: TQRBand.Caption := ADBGrid. Nome_Relatorio: string). // "DATA" QRLabel2: TQRLabel. Create(qrRelatorioPadrao ).

QRBand3. fld. posi := posi + ADBGrid.Top := 4. end.col.Top := 4.DataSet := DataSet.FieldName . fld. Columns[i]. . fld.Left := posi. end. Create(qrRelatorioPadrao ). // Linhas de detalhes fld := TQRDBText. end.Width + 25. fld. Preview. Columns[i].Parent := qrRelatorioPadrao.Left := posi. col.DataField := ADBGrid. fld.Field.

Sign up to vote on this title
UsefulNot useful