Vamos ver nesse artigo o componente ExportQR, que exporta relatórios para arquivos de imagens ou arquivo PDF. Os arquivos de imagem suportados são: JPG, BMP, WMF e EMF, e arquivo PDF pode ser de alta ou baixa compressão. O componente é freeware e possui código fonte.
Download e instalação
Faça o download do componente no endereço: www.clubedelphi.net/ExportReport.zip, descompacte o arquivo num diretório e abra o arquivo ExPackDX.dpk (onde X é a versão do Delphi, sendo que o componente possui versões para Delphi 6 e 7).
Antes de realizarmos a instalação do componente, devemos levar em conta que o componente trabalha com relatórios do QuickReport e FastReport. Se você não possui o FastReport instalado então abra o arquivo ExportPack.pas e exclua a linha onde esta a diretiva para o FastReport, como no código a seguir:
unit ExportPack;
{$DEFINE QUICKREPORT}
{$DEFINE FASTREPORT} // excluir essa linha
{$DEFINE SPANISH}
Após clique no botão Install para instalar o componente. A paleta ZASOFT será criada no Delphi, com o componente ExportQR. Adicione no Library Path (Tools>Environment Options|Library|Library Path) do Delphi o caminho (Diretório Descompactado\Source) dos arquivos fonte do componente.
Exportando relatórios
Agora que já fizemos a instalação do componente vamos ao nosso exemplo. Crie um novo projeto no Delphi, adicione no formulário o componente ExportQR, um RadioGroup, um BitBtn e um Edit.
Adicione ao projeto um relatório (File>New|Other|Report). Utilizaremos no relatório dados de um arquivo XML, coloque no relatório um ClientDataSet e clique com o botão direto no componente e escolha Load from MyBase table... e escolha o arquivo animais.xml que por padrão esta em C:\Arquivos de programas\Arquivos comuns\Borland Shared\Data.
Dê um duplo clique no relatório e em Bands marque as seguintes opções: Column header e Detail band. Clique em OK para voltar ao relatório. Adicione os componentes QRLabel (na banda Column Header) e QRDBText (na banda Detail).
Altere a propriedade DataSet do relatório para o ClientDataSet, como também a propriedade de cada componente com o seu respectivo DataField. Altere para True a propriedade Stretch do QRDBImage. Nosso relatório esta pronto.
Volte ao formulário principal e adicione a unit do relatório, através do menu File>Use Unit...
Clique no botão que irá exporta o relatório e digite o seguinte código:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if (Edit1.Text = '') then
begin
MessageDlg('Especifique um local para a '+
'exportação !', mtError, [mbOK], 0);
Edit1.SetFocus;
Exit;
end
else
begin
QuickReport2.Prepare;
ExportQR1.Report := QuickReport2;
case RadioGroup1.ItemIndex of
0 : ExportQR1.ExportQRPDF(Edit1.Text, True);
1 : ExportQR1.ExportQRPDF(Edit1.Text, False);
2 : ExportQR1.ExportQRJPG(Edit1.Text);
3 : ExportQR1.ExportQRBMP(Edit1.Text);
4 : ExportQR1.ExportQRWMF(Edit1.Text);
5 : ExportQR1.ExportQREMF(Edit1.Text);
end;
end;
end;
Adicione o relatório na opção que cria o mesmo em tempo de execução (Project>Options|Forms|Auto-create forms). Rode e teste a aplicação. Note que no caso da exportação para PDF é criado um único arquivo, já na exportação de imagens é criado um arquivo para cada página do relatório e adicionado um número.
Vimos nesse artigo à facilidade na exportação de relatórios para arquivos PDF ou de imagens, com o componente ExportQR. Vale ressaltar que o componente trabalha também com o gerador FastReport. Um grande abraço e até a próxima.