Exportando relatorios em Rave Reports
Veja nesta quick, como podemos exportar relatórios em Rave Reports.
Olá galera, nesta Quick Tips, irei mostrar como podemos exportar os dados de relatórios feito em Rave Reports para PDF, HTML, RTF, Text(estes componentes estão presentes na palheta RaveReports).
Infelizmente o Rave Reports , não tem como exportar os dados para Excel, assim como o Crystal Reports, porém existe um componente de terceiro que faz este feito, mas não cheguei a testar o mesmo.
Vamos criar uma VCL Forms Application – Delphi:
Adicione um TButton e um TRadioGroup e um SaveDialog
Adicione no TRadioGroup os seguintes itens :
- HTML
- RichText
- Text
Selecione o SaveDialog :
Na propriedade Filter coloque o seguinte código : PDF Files (*.pdf)|*.pdf|HTML Files (*.htm)|*.htm;*.html|Rich Text (*.rtf)|*.rtf|Text File (*.txt)|*.txt
Agora no clique do TButton vamos implementar o código para exportação :
procedure TfrmExport.btnExportarClick(Sender: TObject);
var
MStream: TMemoryStream;
begin
SaveDialog1.FilterIndex := Succ(RadioGroup1.ItemIndex); {posicion
posicionar na extensao correta}
if SaveDialog1.Execute then
begin
MStream := TMemoryStream.Create;
dmReport.RvProject1.Engine := dmReport.RvNDRWriter1;
dmReport.RvNDRWriter1.Stream := MStream;
dmReport.RvNDRWriter1.StreamMode := smUser;
dmReport.RvProject1.ExecuteReport
(‘rptCliente’);
case RadioGroup1.ItemIndex of
0: dmReport.RvRenderPDF1.PrintRender(dmReport.RvNDRWriter1.Stream, SaveDialog1.FileName);
1: dmReport.RvRenderHTML1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
2: dmReport.RvRenderRTF1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
3: dmReport.RvRenderText1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
end;
end;
end;
Com este código podemos ter em nossos sistemas, que utilizam o Rave Reports, um mecanismos de exportação, podemos ao invés de implementar esta rotina no TButton, podemos criar uma função com o parâmetro do nome do relatório e o tipo de exportação por exemplo, tornando esta rotina reutilizável.
Veja um exemplo, criamos um tipo TTipoExportacao
Type
TTipoExportacao = (TPDF, THTML, TRTF, TText);
procedure TfrmExport.btnExportarClick(xRelatorio: String; xTipoExportacao : TTipoExportacao);
var
MStream: TMemoryStream;
begin
SaveDialog1.FilterIndex := Succ(RadioGroup1.ItemIndex); {posicion
posicionar na extensao correta}
if SaveDialog1.Execute then
begin
MStream := TMemoryStream.Create;
dmReport.RvProject1.Engine := dmReport.RvNDRWriter1;
dmReport.RvNDRWriter1.Stream := MStream;
dmReport.RvNDRWriter1.StreamMode := smUser;
dmReport.RvProject1.ExecuteReport
(xRelatorio);
case xTipoRelatorio of
TPDF: dmReport.RvRenderPDF1.PrintRender(dmReport.RvNDRWriter1.Stream, SaveDialog1.FileName);
THTML: dmReport.RvRenderHTML1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
TRTF: dmReport.RvRenderRTF1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
TText: dmReport.RvRenderText1.PrintRender(dmReport.RvNDRWriter1.Stream,
SaveDialog1.FileName);
end;
end;
end;
Fico por aqui ate à próxima Quick Tips.
Um abraço
Wesley Y
wyamazack@rwsolution.com.br
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo