Gerando um relatório Rave em modo programado:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RPRender, RpDefine, RpBase, RpSystem, RPDevice;
type
TForm1 = class(TForm)
BtImprimir: TButton;
procedure BtImprimirClick(Sender: TObject);
procedure RvSystemMPPrintHeader(Sender: TObject);
procedure RvSystemMPPrint(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Procedure PrintReport(TamPapel: String);
procedure CabecalhoRelatorio(Titulo1,Titulo2,Titulo3: String);
procedure Relatorio;
public
{ Public declarations }
RvSystemMP: TRvSystem; // Modo Programado
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PrintReport(TamPapel: String);
begin
RvSystemMP.SystemPrinter.MarginTop:=1;
RvSystemMP.SystemPrinter.MarginLeft:=1;
RvSystemMP.SystemPrinter.MarginRight:=1;
RvSystemMP.SystemPrinter.MarginBottom:=1;
RvSystemMP.SystemPrinter.MarginBottom:=1;
RvSystemMP.SystemPrinter.Units:=unCM;
RvSystemMP.SystemPrinter.UnitsFactor:=2.54;
RvSystemMP.SystemFiler.AccuracyMethod:=amAppearance;
rpDev.SelectPaper(TamPapel,False);
rpDev.Copies:=1;
RvSystemMP.SystemPrinter.Copies:=rpDev.Copies;
rpDev.Orientation:=poPortrait;
RvSystemMP.SystemPrinter.Orientation:=rpDev.Orientation;
RvSystemMP.SystemPreview.RulerType:=rtBothCm;
RvSystemMP.SystemSetups:=RvSystemMP.SystemSetups-[ssAllowSetup];
RvSystemMP.SystemPreview.FormState:=wsMaximized;
RvSystemMP.OnPrintHeader:=RvSystemMPPrintHeader;
RvSystemMP.OnPrint:=RvSystemMPPrint;
RvSystemMP.Execute;
end;
procedure NextLine(RVSystem:TRVSystem);
begin
RVSystem.BaseReport.NewLine;
if RVSystem.BaseReport.LinesLeft = 0 then
RVSystem.BaseReport.NewPage;
end;
procedure TForm1.CabecalhoRelatorio(Titulo1,Titulo2,Titulo3: String);
begin
with RvSystemMP.BaseReport do
begin
SetFont('Tahoma',14);
MarginTop:=0.5;
Home;
PrintHeader(Titulo1,pjLeft);
MarginTop:=MarginTop+LineHeight;
Home;
SetFont('Tahoma',8);
PrintHeader(Titulo2,pjLeft);
PrintHeader('Página '+Macro(midCurrentPage)+'/'+Macro(midTotalPages),pjRight);
MarginTop:=MarginTop+LineHeight;
Home;
PrintHeader(Titulo3,pjLeft);
PrintHeader('Data '+FormatDateTime('dd/mm/yyyy',now()),pjRight);
Canvas.Pen.Width:=2;
Canvas.Pen.Color:=clBlack;
MoveTo(MarginLeft,YPos+0.3);
LineTo(PageWidth-MarginRight,YPos+0.3);
Bold:=True;
MarginTop:=MarginTop+LineHeight+0.5;
Home;
PrintLeft('Categoria',1);
PrintLeft('Produto',6);
PrintLeft('Cidade',12);
PrintRight('Vendas',20.5);
Canvas.Pen.Width:=2;
Canvas.Pen.Color:=clBlack;
MoveTo(MarginLeft,YPos+0.1);
LineTo(PageWidth-MarginRight,YPos+0.1);
Bold:=False;
MarginTop:=MarginTop+LineHeight+0.2;
Home;
AdjustLine;
end;
end;
procedure TForm1.Relatorio;
var
i: Word;
begin
for i:=1 to 300 do
begin
RvSystemMP.BaseReport.PrintLeft('PRESTADOR DE SERVIÇOS',1);
RvSystemMP.BaseReport.PrintLeft('DESENVOLVIMENTO DE SOFTWARES',6);
RvSystemMP.BaseReport.PrintLeft('IBIPORÃ - PR',12);
RvSystemMP.BaseReport.PrintRight('1.200,00',20.5);
NextLine(RvSystemMP);
end;
end;
procedure TForm1.RvSystemMPPrintHeader(Sender: TObject);
begin
CabecalhoRelatorio('EMPRESA: AMDsoFtwares','RELATÓRIO DE VENDAS','ANO: 2008');
end;
procedure TForm1.RvSystemMPPrint(Sender: TObject);
begin
Relatorio;
end;
procedure TForm1.BtImprimirClick(Sender: TObject);
begin
RvSystemMP:=TRvSystem.Create(Self);
PrintReport('Carta');
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
RvSystemMP.Free;
end;
end.