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: