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:
- 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
; - 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 ouMicrosoft.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:
- 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
.
- No Visual Studio, clique com o botão direito no projeto;
- 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.
- No designer do relatório, você pode arrastar componentes da Toolbox como Tables, Charts, Images, etc., para montar o layout;
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
(comoId
,Nome
, ePreco
).
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:
- Adicione o controle ReportViewer ao seu formulário:
- No Toolbox, arraste e solte o controle
ReportViewer
em seu formulário.
- No Toolbox, arraste e solte o controle
- 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:
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:
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
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários