FastReport no Delphi - Com dois Detail
Criaremos um relatório de orçamentos, então iremos exibir os dados principais do "Cliente" e "Número do Orçamentos" e abaixo os produtos e os detalhes das parcelas. Vamos organizar esse relatório jogando os produtos para um Detail e com os totais dos produtos, e outro Detail com as parcelas.
Esse vai ser apenas um exemplo ilustrativo, sem conexão com banco de dados, vamos nos aprofundar apenas na parte do FastReportVamos iniciar um novo projeto (File >> New >> Windows VCL Application);
Nesse projeto vamos utilizaremos:
2 - TBitBtn;
3 - TfrxDBDataset;
1 - TfrxReport
3 - TClientDataSet;
3 - TDataSource;
1 - TEdit;
Organizei os componentes desta forma:
Dê dois cliques no componente frxReport para abrir na forma de Designer, vamos iniciar (File >> New Report). Pronto criamos um novo documento ele nos trouxe como padrão ReportTitle1, MasterData1 e um PageFooter1, adicionar as tabelas no FastReport menu (Report >> Data);
Vamos comecar colocando o nosso logo no topo do relatório.
Eu coloquei manualmente o caminho utilizando um TEdit para colocar o caminho do logo, mas vocês podem colocar um campo na tabela de configuração do sistema para colocar um logo padrão da empresa com isso pode ser utilizado em outros locais do sistema.
Vamos para o FestReport
Colocamos uma linha para identificar se o logo e existe, pois se mandar um caminho invalido ocorre erro, e coloquei uma variável em branco para quando não encontrar o logo para não ocorrer o erro de não encontrar a variável no FastReport
procedure TFSistema.BtnVisualizarClick(Sender: TObject);
begin
if FileExists(edLogoTipo.Text) then //Identifica se existe um logo
frxReport.Variables.Variables['LogoSistema'] := QuotedStr(edLogoTipo.Text)
else
frxReport.Variables.Variables['LogoSistema'] := QuotedStr('');
frxReport.ShowReport;
end;
Com o código pronto no FastReport vamos usar a variável na parte do código
begin
if <LogoSistema> <> '' then
igLogo.LoadFromFile(<LogoSistema>)
end.
Quando adicionarmos o componente que vai receber nosso logo vamos marcar algumas propriedades, Com a propriedade Stretched ativa o logo irá ocupar exatamente o tamanho que nós estipulamos, e com a propriedade HightQuality nosso logo irá ter uma qualidade melhor.
Agora para os produtos vamos adicionar uma Detail e com ela vinculamos o frxDataset2 com vínculo aos cdsOrcamentos_produtos abaixo do MasterData.
Agora vamos para as parcelas, vinculei a tabela frxDataset3 que seria a cdsOrçamentos_Parcelas.
Para isso iremos utilizar um Detail e com ela vinculamos o frxDataset3 com vínculo aos cdsOrcamentos_parcelas abaixo do outro Detail.
Antes de irmos para os totais vamos dar uma olhada e uma "perfumada" no nosso documento, colocar o numero do orçamento no topo do documento, um espaço maior entre as parcelas e os produtos;
Agora iremos para o nosso rodapé com os totais agora, para isso vamos utilizar um ColumnFooter, para ficar no final do nosso documento, e faremos um Sum na Detail.
Resultado final
Espero ter acendido uma pequena luz no final do túnel de como fazer um documento com três tabelas.
Exemplo: Download do exemplo
0 comentários:
Postar um comentário