Você está na página 1de 8

31/07/2017 VB .

NET - Criando um relatrio como ReportViewer

VB .NET - Criando um relatrio com grfico usando o


ReportViewer

Neste artigo eu vou mostrar como criar um relatrio usando o ReportViewer em uma
aplicao Windows Forms usando a linguagem Visual Basic e o VS 2013 Comunity Edition.

O ReportViewer no est disponvel com VS 2013, mas ele est disponvel como um download gratuito. O
ReportViewer na verdade um componente do SQL Express.

Para gerar relatrios com o ReportViewer temos que instalar o Report Builder e o ReportViewer RunTime.

O SQL Express (LocalDB) no inclui o Report Builder mas voc pode baix-lo aqui :
http://www.microsoft.com/en-us/downl....aspx?id=35576

Apsisso voc precisa instalar o ReportViewer RunTimeque pode ser obtido aqui :
http://www.microsoft.com/en-us/downl....aspx?id=35747

No existe uma verso dedicada ao VS 2013 mas essas verses funcionam com o VS 2012 e VS 2013.

A verso Community do Visual Studio 2013 disponibilizada como um download gratuito sendo equivalente
verso Professional em termos de recursos.

Recursos usados:

Microsoft VIsual Studio Comunity Edition

ReportViewer

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 preferncia e clique no boto OK;

Vamos agora criar duas classes em nosso projeto que permitiro definir o nosso domnio e o nosso repositrio.

http://www.macoratti.net/15/02/vbn_rptv1.htm 1/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer
No menu PROJECT clique em Add Class e informe o nome Estudante.vb e a seguir inclua o seguinte cdigo 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 domnio. Vamos agora definir uma classe que ir permitir atribuir valores
nossa classe de forma a termos dados para montar o relatrio.

No menu PROJECT clique em Add Class e informe o nome EstudanteRepositorio.vb e a seguir inclua o seguinte
cdigo 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 = "Pa 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 formulrio form1.vb.

A partir da ToolBox abra a guia Reporting e arraste e solte o componente ReportViewer no formulrio alterando
o seu nome para rptv1 :

http://www.macoratti.net/15/02/vbn_rptv1.htm 2/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Agora que temos as classes vamos gerar o nosso relatrio 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 formulrio:

Informe o nome do relatrio como sendo : RelatorioEstudantes.rdlc

Clique com o boto direito sobre o item DataSet e a seguir em Add DataSet;

Em Data Source clique no boto New;

No assistente clique em Object:

http://www.macoratti.net/15/02/vbn_rptv1.htm 3/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Selecione a classe Estudante e clique no boto Finish:

A seguir selecione Usando_ReportViewer e selecione o dataset Estudante:

Clique com o boto 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 :

http://www.macoratti.net/15/02/vbn_rptv1.htm 4/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Clique com o boto direito novamente no descritor e a seguir em Insert -> Page Header. Isso criar um Header
no topo do relatrio.

Clique com boto direito sobre a rea do Header e a seguir clique em Insert -> TextBox;

Digite no interior do TextBox o ttulo do relatrio : Relatrio de Estudantes com Grfico de Notas

Agora clique com o boto direito novamente no descrito logo abaixo da tabela do relatrio e a seguir clique em
Insert -> Chart;

A seguir selecione o tipo de grfico 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 ttulo do grfico
como Grfico Notas e o ttulo do eixo X como Estudantes e do eixo Y como Notas:

http://www.macoratti.net/15/02/vbn_rptv1.htm 5/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Salve o relatrio.

Agora para concluir inclua o cdigo abaixo no evento Load do formulrio form1.vb onde temos o ReportViewer
que ir exibir o relatrio:

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:

http://www.macoratti.net/15/02/vbn_rptv1.htm 6/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Pegue o projeto completo aqui: ReportViewer_Grafico_Relatorio_1.zip

Veja a vdeo aula deste artigo em : ReportViewer - Gerando relatrio com grfico a partir de objetos

Quer aprender o gerar relatrios com o ReportViewer no VS 2013 ?

Curso - Gerando Relatrios com o ReportViewer no VS 2013 - Vdeo Aulas

Disse-lhes, pois, Jesus: Quando levantardes o Filho do homem, ento conhecereis que EU SOU, e que nada
fao por mim mesmo; mas isto falo como meu Pai me ensinou.
E aquele que me enviou est comigo. O Pai no me tem deixado s, porque eu fao sempre o que lhe agrada.
Joo 8:28-29

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre
atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super


DVD .NET , confira...

Curso Bsico VB .NET - Vdeo Aulas

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vdeo


aulas com curso bsico sobre C#.

Curso C# Basico - Video Aulas

Quer aprender os conceitos da Programao Orientada a


objetos ?

Curso Fundamentos da Programao Orientada a Objetos com


VB .NET
http://www.macoratti.net/15/02/vbn_rptv1.htm 7/8
31/07/2017 VB .NET - Criando um relatrio como ReportViewer

Quer aprender o gerar relatrios com o ReportViewer no VS


2013 ?

Curso - Gerando Relatrios com o ReportViewer no VS


2013 - Vdeo Aulas

Gostou ? Compartilhe no Facebook Compartilhe no Twitter

Referncias:

Seo VB .NET do Site Macoratti.net


Super DVD .NET - A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C#
Seo C# do site Macoratti.net
Super DVD C#
Super DVD Visual Basic
Curso Bsico VB .NET - Vdeo Aulas
Curso C# Bsico - Vdeo Aulas
ReportViewer - Macoratti .NET
ReportView - Usando parmetros - Macoratti.net
EBook - Usando o ReportViewer (reviso) - Macoratti.net

Jos Carlos Macoratti

http://www.macoratti.net/15/02/vbn_rptv1.htm 8/8