Gerador de Relatórios Versão 1.0

Este artigo tem como objeto apresenta uma ferramenta para geração de relatórios .NET. A ferramenta é caracterizada pela sua simplicidade de uso e bastante semelhante a alguns geradores disponíveis no mercado.

Ferramentas de geração de relatório como ReportBulder com Delphi e Visual Studio com C# possuem certa dificuldade em suas configurações, além de serem pagas. Por isso, nesse artigo apresentaremos uma alternativa para a geração de relatórios. Ela é feita em C# e funciona a partir do Framework .NET 2.0.

O gerador suporta diversos tipos de fonte de dados, como DataSet, ArrayList e DataTable. Permite ainda acrescentar novas tipos de fontes, bastando implementando a interface IDataReport.

Desenho do Layout do Documento

Um dos módulos principais e que absorveu mais tempo de desenvolvimento foi o que é utilizado para desenho do layout do relatório.

Nele é possível criar cabeçalhos, títulos, configurar o layout e tamanho da página, bem como configurar agrupamentos, como mostram as Figuras 1, 2 e 3.

Figura 1. Titulos, Cabeçalho Rodape, Sumarios e Grupos
Figura 2. Visualização
Figura 3. Visualização do Relatório

Nos Códigos 1 a 4 temos a codificação da ferramenta.

using KReport; public static void Main() { DataSet dsDados = new DataSet(); ds.ReadXML("Teste.xml"); KReport.Engine.Report rpt = new KReport.Engine.Report(); rpt.FileName = "Report.xml"; //define o arquivo onde esta o layout rpt.Load(); // Carrega o layout rpt.AddSource(dsdados); // adiciona a fonte de dados rpt.ShowDesigner(); // Visualiza lauout do relatório }
Código 1. Carregar o Módulo de Desenho do Relatório
using KReport; public static void Main() { DataSet dsDados = new DataSet(); ds.ReadXML("Teste.xml"); KReport.Engine.Report rpt = new KReport.Engine.Report(); rpt.FileName = "Report.xml"; //define o arquivo onde esta o layout rpt.Load(); // Carrega o layout rpt.AddSource(dsdados); // adiciona a fonte de dados rpt.Show(); // Visualiza relatorio na forma de preview }
Código 2. Carregar formulário de visualização do relatório
public static void Main() { DataSet dsDados = new DataSet(); ds.ReadXML("Teste.xml"); KReport.Engine.Report rpt = new KReport.Engine.Report(); rpt.FileName = "Report.xml"; //define o arquivo onde esta o layout rpt.Load(); // Carrega o layout rpt.AddSource(dsdados); // adiciona a fonte de dados rpt.Print(); // Imprimi relatório }
Código 3. Carregar impressão do relatório
public static void Main() { ArrayList source; Persistencia.StartSession(); source = Persistencia.GetListObject(typeof(Credito)," status = 0"); Persistencia.EndSession(); KReport.Engine.Report rpt = new KReport.Engine.Report(); rpt.FileName = "Report.xml"; //define o arquivo onde esta o layout rpt.Load(); // Carrega o layout rpt.AddSource(source); // adiciona a fonte de dados rpt.Print(); // Imprimi relatório }
Código 4. Código utilizando uma lista de objetos

Artigos relacionados