Você está na página 1de 12

Agostinho Andrade 1

Passos para fazer um novo projeto


com SQLite e Reports
1º Fazer um novo projeto

2º Fazer o Nuget do SQLite


Agostinho Andrade 2

3º Fazer uma classe para acesso à Base de Dados ex: AcessoDB

Agora deve-se copiar as funções necessárias, alterar os nomes dos campos e eventualmente das
funções de forma a se adaptarem ao propósito deste projeto. Para isso vamos copiar o conteúdo de
TelefonesDB e alterar o que é necessário.

Colar em AcessoDB, alterar o nome da Base de Dados ….


Agostinho Andrade 3

4º Fazer o NuGet do Report Control WebForms para o projeto


Agostinho Andrade 4

5º Fazer um novo DataSet para criar o acesso local à Base de Dados, o DataSet deve ter o mesmo
formato da ficha/tabela na B.D.
Para fazer o DataSet, basta adicionar um novo item ao projeto do tipo DataSet e deixar o nome por
defeito de DataSet1.xsd.

Porque temos de fazer isto? Porque o acesso não é feito através do gestor OCDB tal como seria para
SQL Server ou ACCDB. Fazendo um DataSet “virtual”, que não está ligado a nenhuma base de dados,
também podemos chamar-lhe “template”, vamos permitir que o Report tenha uma forma de saber
qual o formato da base de dados, sem fazer acesso à mesma, visto que não vai ser criada a
ConnectionString, como nos programas que fizemos anteriormente.
Após a criação do DataSet há que preenche-lo com um DataTable e os campos da tabela.

Depois de adicionar uma Column


Agostinho Andrade 5

Ir às suas Properties e alterar os dados necessário (tipo de campo e nome). Isto deve ser feito para
campo da tabela.

Adiciona a Key ao campo ID, visto ser a chave primária.

Depois de inserir e configurar cada campo temos, uma DataSet1 com uma DataTable1 que nos
permite fazer acesso a uma Base de Dados.
Agostinho Andrade 6

Agora vamos fazer um Report


Adicionar um novo item ao projeto do tipo Report Wizard e selecionar o nosso Dataset1 como
elemento de acesso à Base de Dados para podermos criar o novo relatório.
Agostinho Andrade 7

Avance até ao fim de forma a obter a seguinte imagem

O relatório está feito, agora é só formatá-lo com os campos que estão do lado esquerdo e compô-lo.
Com o botão do lado direito do rato podemos aceder ao menu de insert

Deverá explorar ao máximo estas propriedades do Report e criar relatórios diferentes, formata-los e
compreender como funciona o máximo de propriedades dos Relatórios.

Como aluno do 12º faz parte da sua formação a investigação e realização de experiências dentro do
foro da disciplina. Neste documento estão as bases necessárias para colocar a funcionar o processo
de visualização de relatórios em VB, mas caberá ao aluno melhorar as suas competências com a
investigação da forma de utilizar os diversos recursos que o VB nos proporciona e obter melhores
resultados para o seu relatório. Será valorizada a nota de quem seguir este caminho.

Para já vamos apagar os objetos que estão dentro do relatório e adicionar uma Tabela como no
exemplo que se segue
Agostinho Andrade 8

Vamos inserir uma tabela e edita-la com todos os campos. Também podemos inserir uma linha e
uma TextBox e formata-las ao nosso gosto. Quando já tiver feito o que pretende, gravar o Report1 e
passar a programação de um botão no nosso projeto para visualizar os dados neste Report.
Agostinho Andrade 9

Colocar o seguinte código num botão

Private Sub Relatorio_Click(sender As Object, e As EventArgs) Handles Relatorio.Click


'acesso à Base de Dados
Dim ficha As New AcessoDB
Dim dx As DataSet

'Leitura dos dados


dx = ficha.Le_TelefoneDataset(Me)

'alteração do nome da Tabela para condizer com o do Report é IMPORTANTE!!!


dx.Tables(0).TableName = "DataSet1"

'lançamento do report com o respetivo dataset de dados


ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
ReportViewer1.DocumentMapCollapsed = True
ReportViewer1.LocalReport.ReportPath = Application.StartupPath & "\Report1.rdlc"
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New
Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dx.Tables("DataSet1")))
ReportViewer1.RefreshReport()
End Sub

Agora vamos executar o projeto e ver o resultado final


Agostinho Andrade 10

Após copiar o ficheiro para a pasta Debug temos:

Como fazer passagem de parâmetros no Report VB 2017


Os parâmetros são passados a partir de um Dataset, portanto temos que criar um novo dataset no
projeto com a seguinte estrutura:

Agora vamos ao Report e adicionamos o Dataset novo


Agostinho Andrade 11

Com o relatório editado, gravar e copia-lo para a pasta de Debug


Agora vamos ao código, no botão relatório adicionar o código para usar o dataset parâmetros
Vou colocar o código do botão completo:

Private Sub Relatorio_Click(sender As Object, e As EventArgs) Handles Relatorio.Click


'acesso à Base de Dados
Dim ficha As New AcessoDB
Dim dx As DataSet

'Leitura dos dados


dx = ficha.Le_TelefoneDataset(Me)

'alteração do nome da Tabela para condizer com o do Report é IMPORTANTE!!!


dx.Tables(0).TableName = "DataSet1"

'lançamento do report com o respetivo dataset de dados


ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
ReportViewer1.DocumentMapCollapsed = True
ReportViewer1.LocalReport.ReportPath = Application.StartupPath & "\Report1.rdlc"
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New
Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dx.Tables("DataSet1")))

'*******************************************************************************
'sumário:
Agostinho Andrade 12

'adicionar prâmetros ao relatório:


'adquirir os valores que queremos passa em parâmetros
'segundo fazer um Dataset com os parâmetros que queremos passar
'adcionar o Dataset parametros ao report e fazer o refresh
'*******************************************************************************
'adquirir os valores que queremos passa em parâmetros
Dim somaNCs As Double = 0
For i = 0 To dx.Tables(0).Rows.Count - 1
somaNCs += Convert.ToDouble(dx.Tables(0).Rows(i).Item(4))
Next

'segundo fazer um Dataset com os parâmetros que queremos passar

Dim parametros As New parametros


parametros.Tables.Add()
parametros.Tables(0).TableName = "parametrosT"
Dim row As DataRow = parametros.Tables(0).NewRow()
row.Item(0) = 0 'porque é o primeiro parâmetro
row.Item(1) = somaNCs.ToString
parametros.Tables(0).Rows.Add(row)

'adcionar o Dataset parametros ao report e fazer o refresh


ReportViewer1.LocalReport.DataSources.Add(New
Microsoft.Reporting.WinForms.ReportDataSource("parametros", parametros.Tables("parametrosT")))
ReportViewer1.RefreshReport()
End Sub

Você também pode gostar