DATASET

DIONISIO 21/07/2015 10:15:44
#449088
BOM DIA A TODOS, ALGUEM PODE ME AJUDAR?
QUERO GERAR UM RELATORIO APARTIR DO REPOTVIWER COM VISUAL STUDIO 2008, SEI QUEM TEM QUE CRIAR UM DATASET, SO EU USO O BANCO DE DADOS DO ACCESS, ALGUEM PODE ME DA UMA LUZ?
MESTRE 21/07/2015 11:01:04
#449089
Se for um relatório que não for mudar e sempre for o mesmo utilize DataSet..

Se for criar um DataSet botao direito > Add New Item > Data > DataSet..

Exemplo em Sql Server porém não muda muito pro Acess
    Dim sConnectionString As String
sConnectionString = [Ô]Password=<strong password>;User ID=<username>;[Ô] & _
[Ô]Initial Catalog=pubs;[Ô] & _
[Ô]Data Source=(local)[Ô]

Dim objConn As New SqlConnection(sConnectionString)
objConn.Open()

Dim daAuthors As _
New SqlDataAdapter([Ô]Select * From Authors[Ô], objConn)

Dim dsPubs As New DataSet([Ô]Pubs[Ô])
daAuthors.FillSchema(dsPubs, SchemaType.Source, [Ô]Authors[Ô])
daAuthors.Fill(dsPubs, [Ô]Authors[Ô])

Dim tblAuthors As DataTable
tblAuthors = dsPubs.Tables([Ô]Authors[Ô])

Dim drCurrent As DataRow
For Each drCurrent In tblAuthors.Rows
Console.WriteLine([Ô]{0} {1}[Ô], _
drCurrent([Ô]au_fname[Ô]).ToString, _
drCurrent([Ô]au_lname[Ô]).ToString)
Next


O Fill preenche o DataSet com os dados da Sql Query.. é bem simples ja fiz com MySql..

Caso for um relatório que pode ter mudança FUJA do DATASET e utilize List ou Parametros via SQL Query..


Abraços!
DAMASCENO.CESAR 21/07/2015 11:04:34
#449090
Resposta escolhida
quando usava o reportviewer (Agora faco na mao, kkk) o dataset eu setava numa classe com os objetos iguais ao da tabela ou consulta:

Public Class SuaClasse
Public Property Campo1 As String
Public Property Campo2 As String
Public Property Campo3 As Integer
Public Property Data As Date
End Class

entao uso uma string SQL pra consulta e faço as conexoes:
lembrando que StrRelat deve ser uma variavel publica
StrRelat = [Ô]SELECT * FROM SuaTabela WHERE SuaCondicao[Ô]
e chamo o form onde esta o componente de exibicao de relatorio:
código no form do relatorio:

Imports System.Data.OleDb
Imports Microsoft.Reporting.WinForms

Public Class FrmRelatorio
Dim DtTb As New DataTable
Dim ds As New DataSet

Private Sub FrmRelatorio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ReportData As New Microsoft.Reporting.WinForms.ReportDataSource

GerarRelatorio()
ReportData.Name = [Ô]DsRelatorio[Ô] [ô] Esse é o dataset do relatorio

ReportData.Value = DtTb
With Me.RpwMostra.LocalReport
[ô]linha para teste
.ReportPath = Application.StartupPath & [Ô]\..\..\RptMeuRelatorio.rdlc[Ô]
[ô]linha para programa instalado
[ô].ReportPath = Application.StartupPath & [Ô]\RptMeuRelatorio.rdlc[Ô]
.DataSources.Clear()
End With

Me.RpwMostra.LocalReport.DataSources.Add(ReportData)

Me.RpwMostra.RefreshReport()

End Sub

Private Sub GerarRelatorio()

DaFunc = New OleDbDataAdapter(StrRelat, Conexao)
DaFunc.Fill(DtTb)
DaFunc.Fill(ds, StrRelat)
DtTb = ds.Tables(0)
End Sub

End Class
DIONISIO 22/07/2015 09:48:07
#449118
Citação:

:
Se for um relatório que não for mudar e sempre for o mesmo utilize DataSet..

Se for criar um DataSet botao direito > Add New Item > Data > DataSet..

Exemplo em Sql Server porém não muda muito pro Acess

    Dim sConnectionString As String
sConnectionString = [Ô]Password=<strong password>;User ID=<username>;[Ô] & _
[Ô]Initial Catalog=pubs;[Ô] & _
[Ô]Data Source=(local)[Ô]

Dim objConn As New SqlConnection(sConnectionString)
objConn.Open()

Dim daAuthors As _
New SqlDataAdapter([Ô]Select * From Authors[Ô], objConn)

Dim dsPubs As New DataSet([Ô]Pubs[Ô])
daAuthors.FillSchema(dsPubs, SchemaType.Source, [Ô]Authors[Ô])
daAuthors.Fill(dsPubs, [Ô]Authors[Ô])

Dim tblAuthors As DataTable
tblAuthors = dsPubs.Tables([Ô]Authors[Ô])

Dim drCurrent As DataRow
For Each drCurrent In tblAuthors.Rows
Console.WriteLine([Ô]{0} {1}[Ô], _
drCurrent([Ô]au_fname[Ô]).ToString, _
drCurrent([Ô]au_lname[Ô]).ToString)
Next


O Fill preenche o DataSet com os dados da Sql Query.. é bem simples ja fiz com MySql..

Caso for um relatório que pode ter mudança FUJA do DATASET e utilize List ou Parametros via SQL Query..


Abraços!





DIONISIO 22/07/2015 09:50:18
#449119
Citação:

:
quando usava o reportviewer (Agora faco na mao, kkk) o dataset eu setava numa classe com os objetos iguais ao da tabela ou consulta:

Public Class SuaClasse
Public Property Campo1 As String
Public Property Campo2 As String
Public Property Campo3 As Integer
Public Property Data As Date
End Class

entao uso uma string SQL pra consulta e faço as conexoes:
lembrando que StrRelat deve ser uma variavel publica
StrRelat = [Ô]SELECT * FROM SuaTabela WHERE SuaCondicao[Ô]
e chamo o form onde esta o componente de exibicao de relatorio:
código no form do relatorio:

Imports System.Data.OleDb
Imports Microsoft.Reporting.WinForms

Public Class FrmRelatorio
Dim DtTb As New DataTable
Dim ds As New DataSet

Private Sub FrmRelatorio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ReportData As New Microsoft.Reporting.WinForms.ReportDataSource

GerarRelatorio()
ReportData.Name = [Ô]DsRelatorio[Ô] [ô] Esse é o dataset do relatorio

ReportData.Value = DtTb
With Me.RpwMostra.LocalReport
[ô]linha para teste
.ReportPath = Application.StartupPath & [Ô]....RptMeuRelatorio.rdlc[Ô]
[ô]linha para programa instalado
[ô].ReportPath = Application.StartupPath & [Ô]RptMeuRelatorio.rdlc[Ô]
.DataSources.Clear()
End With

Me.RpwMostra.LocalReport.DataSources.Add(ReportData)

Me.RpwMostra.RefreshReport()

End Sub

Private Sub GerarRelatorio()

DaFunc = New OleDbDataAdapter(StrRelat, Conexao)
DaFunc.Fill(DtTb)
DaFunc.Fill(ds, StrRelat)
DtTb = ds.Tables(0)
End Sub

End Class




CARO DAMASCENO, BLZ FUNCIONOU ESTE CODIGO, MAS PARA FORMATAR O REPORTVIEWER EM PAPAEL A4 OU OFICIO VIA CODIGO COMO EU FAÇO?

Tópico encerrado , respostas não são mais permitidas