VB .NET - Criando um relatório com gráfico usando o ReportViewer
Neste artigo eu vou mostrar como criar um relatório usando o ReportViewer em uma aplicação Windows Forms usando a linguagem Visual Basic e o VS 2013 Comunity Edition. |
O ReportViewer não está disponível com VS 2013, mas ele está disponível
como um download gratuito. O ReportViewer é na verdade um componente do
SQL Express.
Para gerar relatórios com o ReportViewer temos que instalar o Report Builder e o ReportViewer RunTime.
O SQL Express (LocalDB) não inclui o Report Builder mas você pode baixá-lo aqui : http://www.microsoft.com/en-us/downl....aspx?id=35576
Após isso você precisa instalar o ReportViewer RunTime que pode ser obtido aqui : http://www.microsoft.com/en-us/downl....aspx?id=35747
Não existe uma versão dedicada ao VS 2013 mas essas versões funcionam com o VS 2012 e VS 2013.
A versão Community do Visual Studio 2013 é disponibilizada como um download gratuito sendo equivalente à versão Professional em termos de recursos.
Recursos usados:
Criando o projeto no Visual Studio Community 2013
Abra o VS 2013 Community 2013 e clique em New Project;
Selecione a linguagem Visual Basic ou Visual C# e o template ASP .NET Web Application;
Informe o nome UsandoReportViewer ou outro de sua preferência e clique no botão OK;
Vamos agora criar duas classes em nosso projeto que permitirão definir o nosso domínio e o nosso repositório.
No menu PROJECT clique em Add Class e informe o nome Estudante.vb e a seguir inclua o seguinte código nesta classe:
Public Class Estudante
Public Property EstudanteID() As Integer
Public Property Nome() As String
Public Property Nascimento() As DateTime
Public Property Endereco() As String
Public Property Notas() As Integer
End Class
|
A classe Estudante representa o nosso domínio. Vamos agora definir uma classe que irá permitir atribuir valores à nossa classe de forma a termos dados para montar o relatório.
No menu PROJECT clique em Add Class e informe o nome EstudanteRepositorio.vb e a seguir inclua o seguinte código nesta classe:
Public Class EstudanteRepositorio Public Shared Function GetEstudantes() As List(Of Estudante) Dim Lista As New List(Of Estudante)() From { _ New Estudante() With { _ .EstudanteID = 1, _ .Nome = "Macoratti", _ .Endereco = "Rua Peru, 100", _ .Notas = 90, _ .Nascimento = Convert.ToDateTime("11-08-1985") _ }, _ New Estudante() With { _ .EstudanteID = 2, _ .Nome = "Jefferson", _ .Endereco = "Av. Mexico 908", _ .Notas = 85, _ .Nascimento = Convert.ToDateTime("21-11-1991") _ }, _ New Estudante() With { _ .EstudanteID = 3, _ .Nome = "Janice", _ .Endereco = "Pça XV Novembro, 12", _ .Notas = 80, _ .Nascimento = Convert.ToDateTime("15-08-1994") _ }, _ New Estudante() With { _ .EstudanteID = 4, _ .Nome = "Jessica", _ .Endereco = "Rua Primavera ,520", _ .Notas = 75, _ .Nascimento = Convert.ToDateTime("10-02-1989") _ }, _ New Estudante() With { _ .EstudanteID = 5, _ .Nome = "Marcia", _ .Endereco = "Av. Equador , 19", _ .Notas = 70, _ .Nascimento = Convert.ToDateTime("3-03-1988") _ } _ } Return Lista End Function End Class |
Agora vamos incluir um controle ReportViewer no formulário form1.vb.
A partir da ToolBox abra a guia Reporting e arraste e solte o componente ReportViewer no formulário alterando o seu nome para rptv1 :
Agora que temos as classes vamos gerar o nosso relatório para isso vamos incluir um Report em nosso projeto.
No menu PROJECT clique em Add -> New Item e a seguir selecione a guia Reporting e clique no item Report arrastando-o para o formulário:
Informe o nome do relatório como sendo : RelatorioEstudantes.rdlc
Clique com o botão direito sobre o item DataSet e a seguir em Add DataSet;
Em Data Source clique no botão New;
No assistente clique em Object:
Selecione a classe Estudante e clique no botão Finish:
A seguir selecione Usando_ReportViewer e selecione o dataset Estudante:
Clique com o botão direito sobre o descritor do ReportViewer e a seguir clique e Insert Table;
A seguir arraste e solte os campos do DataSet EstudanteDS em cada coluna da tabela :
Clique com o botão direito novamente no descritor e a seguir em Insert -> Page Header. Isso criará um Header no topo do relatório.
Clique com botão direito sobre a área do Header e a seguir clique em Insert -> TextBox;
Digite no interior do TextBox o título do relatório : Relatório de Estudantes com Gráfico de Notas
Agora clique com o botão direito novamente no descrito logo abaixo da tabela do relatório e a seguir clique em Insert -> Chart;
A seguir selecione o tipo de gráfico como sendo um Column conforme a figura a seguir:
Agora a arraste o campo Nota para Values e o campo Nome para Category Groups e defina o título do gráfico como Gráfico Notas e o título do eixo X como Estudantes e do eixo Y como Notas:
Salve o relatório.
Agora para concluir inclua o código abaixo no evento Load do formulário form1.vb onde temos o ReportViewer que irá exibir o relatório:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'pegar a lista de estudantes
Dim lista As List(Of Estudante) = EstudanteRepositorio.GetEstudantes()
rptv1.LocalReport.DataSources.Clear()
rptv1.LocalReport.ReportEmbeddedResource = "ReportViewer_Grafico_Relatorio_1.RelatorioEstudantes.rdlc"
Dim ds As New Microsoft.Reporting.WinForms.ReportDataSource("EstudanteDS", lista)
rptv1.LocalReport.DataSources.Add(ds)
ds.Value = lista
rptv1.LocalReport.Refresh()
Me.rptv1.RefreshReport()
End Sub
End Class
|
Executando o projeto iremos obter o seguinte resultado:
Pegue o projeto completo aqui: ReportViewer_Grafico_Relatorio_1.zip
Veja a vídeo aula deste artigo em : ReportViewer - Gerando relatório com gráfico a partir de objetos
Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?
Disse-lhes, pois,
Jesus: Quando levantardes o Filho do homem, então conhecereis que EU SOU, e que
nada faço por mim mesmo; mas isto falo como meu Pai me ensinou.
E aquele que me enviou está comigo. O Pai não me tem deixado só, porque eu faço
sempre o que lhe agrada.
João 8:28-29
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: