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.