Criar relatórios dinâmicos e bem formatados é uma necessidade comum em sistemas corporativos, e a linguagem C# oferece ótimas ferramentas para isso. Um dos frameworks mais usados para gerar relatórios é o Microsoft ReportViewer, que permite criar relatórios detalhados e gráficos diretamente dentro de sua aplicação. Neste post, aprenda como criar relatórios usando o Report em C#.

1. Preparando o ambiente

Antes de começar a criar relatórios, você precisará configurar o ambiente de desenvolvimento com os recursos necessários.

Passos para instalação:

  1. Instalar o Microsoft RDLC Report Designer: No Visual Studio, acesse a aba de extensões e procure por “RDLC Report Designer”. Instale a extensão para trabalhar com arquivos .rdlc;

  2. Adicionar a Referência do ReportViewer: Caso esteja desenvolvendo para uma aplicação web ou desktop (Windows Forms), você precisará adicionar o pacote NuGet Microsoft.Reporting.WinForms para Windows Forms ou Microsoft.Reporting.WebForms para aplicações web.

2. Criando o relatório RDLC

O ReportViewer usa relatórios no formato RDLC (Report Definition Language Client-side). Esse arquivo descreve o layout, o design e as fontes de dados que serão exibidos no relatório.

Criando o arquivo RDLC:

  1. Adicionar um Relatório ao Projeto:

    • No Visual Studio, clique com o botão direito no projeto;

    • Selecione Add > New Item > Reporting > Report e dê um nome ao seu arquivo .rdlc.

  2. Design do relatório:

    • No designer do relatório, você pode arrastar componentes da Toolbox como Tables, Charts, Images, etc., para montar o layout;

    • No painel de Data Sources, você pode conectar o relatório a uma fonte de dados, como um banco de dados ou uma lista de objetos.

Exemplo simples de relatório:

  • Adicione uma Table ao seu relatório;

  • Arraste os campos que deseja exibir na tabela, como ID, Nome, Preço, etc;

  • Defina cabeçalhos e formate as colunas conforme necessário.

3. Conectando o relatório aos dados

Você pode preencher seu relatório com dados provenientes de várias fontes. Vamos ver como conectar o ReportViewer a uma fonte de dados no C#.

Exemplo de relatório com dados simples:

Neste exemplo, vamos gerar um relatório com dados de uma lista de objetos.

Criar a classe de dados:

public class Produto
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public decimal Preco { get; set; }
}

    Criar a fonte de dados para o relatório:

    Adicione uma DataSet ao seu projeto:

    • Clique com o botão direito na pasta App_Code ou na pasta desejada do projeto;

    • Selecione Add > New Item > DataSet;

    • No DataSet Designer, adicione uma DataTable que mapeia para as propriedades da classe Produto (como Id, Nome, e Preco).

    Código C# para preencher o relatório:

    Agora, você pode preencher o relatório no código, passando os dados.

    using System;
    using System.Collections.Generic;
    using Microsoft.Reporting.WinForms;
    
    public class RelatorioProduto
    {
        public void GerarRelatorio()
        {
            List<Produto> produtos = new List<Produto>()
            {
                new Produto() { Id = 1, Nome = "Produto A", Preco = 100m },
                new Produto() { Id = 2, Nome = "Produto B", Preco = 200m },
            };
    
            // Configurar o ReportViewer
            ReportViewer reportViewer = new ReportViewer();
            reportViewer.ProcessingMode = ProcessingMode.Local;
    
            // Definir o caminho do arquivo RDLC
            reportViewer.LocalReport.ReportPath = "RelatorioProdutos.rdlc";
    
            // Definir a fonte de dados do relatório
            ReportDataSource dataSource = new ReportDataSource("DataSetProdutos", produtos);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
    
            // Exibir o relatório (em um formulário ou página)
            reportViewer.RefreshReport();
        }
    }

    Explicação:

    • List<Produto>: A lista de dados que será exibida no relatório;

    • ReportViewer.ProcessingMode: Definido como Local para processar o relatório localmente;

    • ReportPath: O caminho do arquivo .rdlc;

    • ReportDataSource: Define a fonte de dados do relatório, onde “DataSetProdutos” deve ser o nome do DataSet configurado no designer.

    4. Exibindo o relatório no Windows Forms

    Agora, vamos ver como exibir esse relatório em uma aplicação Windows Forms.

    Exemplo de exibição no Windows Forms:

    1. Adicione o controle ReportViewer ao seu formulário:

      • No Toolbox, arraste e solte o controle ReportViewer em seu formulário.

    2. No código do formulário, carregue o relatório:
    using System;
    using System.Windows.Forms;
    using Microsoft.Reporting.WinForms;
    
    public partial class FormRelatorio : Form
    {
        public FormRelatorio()
        {
            InitializeComponent();
        }
    
        private void FormRelatorio_Load(object sender, EventArgs e)
        {
            // Carregar o relatório
            RelatorioProduto relatorio = new RelatorioProduto();
            relatorio.GerarRelatorio();
        }
    }

    Execute o projeto e o relatório será exibido no controle ReportViewer.

    5. Relatórios em Aplicações Web (ASP.NET)

    Em uma aplicação web, o processo é semelhante, exceto pelo fato de que o ReportViewer estará dentro de uma página ASP.NET.

    Exemplo de relatório em Web Forms:

    Adicione o controle ReportViewer na página .aspx:

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%" Height="600px">
    </rsweb:ReportViewer>

      No code-behind (arquivo .aspx.cs), carregue o relatório:

      protected void Page_Load(object sender, EventArgs e)
      {
          if (!IsPostBack)
          {
              RelatorioProduto relatorio = new RelatorioProduto();
              relatorio.GerarRelatorio();
          }
      }

      O controle ReportViewer renderiza o relatório diretamente na página web, tornando-o interativo para o usuário.

      6. Exportando relatórios

      Os relatórios criados no ReportViewer podem ser exportados para formatos populares como PDF, Excel, Word ou Imagem.

      Exemplo de exportação para PDF:

      byte[] pdfContent = reportViewer.LocalReport.Render("PDF");
      
      using (var fs = new FileStream("relatorio.pdf", FileMode.Create))
      {
          fs.Write(pdfContent, 0, pdfContent.Length);
      }

      Esse código renderiza o relatório em PDF e o salva como um arquivo no sistema.

      A videoaula abaixo ensina, passo a passo, como criar relatórios no Visual Studio usando o Report:

      Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

      CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

      CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

      CLIQUE AQUI E SAIBA MAIS

      Dúvidas ou sugestões sobre como criar relatórios usando o Report em C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
       https://youtube.com/criandobits

      Tags:

      Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

      Não enviamos spam. Seu e-mail está 100% seguro!

      Sobre o Autor

      Bene Silva Júnior
      Bene Silva Júnior

      Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

      0 Comentários

      Deixe um comentário

      O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *