REPORTVIEWER VIA CODIGO

ARCADYUM 20/02/2013 09:56:47
#419387
Pessoal,
Eu estou querendo criar relatórios no reportviewer só que completamente via código. Eu até encontrei um código no site da Microsoft para gerar a consulta e criar o relatório, porém, como no corpo do report tem um tablix o mesmo exige que eu crie um dataset para associar ao controle. Ao tentar criar o dataset pede que eu crie um DataSource, tudo via Wizard. O projeto não compila por que não tem dataset e nem datasource associado. Enfim, existe alguma forma de construir e associar tudo via código??
Uso Visual Studio 2010 e não tenho a menor experiência com Reportviewer.
JABA 20/02/2013 15:19:20
#419426
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=386899
ARCADYUM 20/02/2013 21:47:19
#419450
Pessoal,
Estou utilizando o seguinte código em um módulo para gerar o reportviewer

Dim USER As New ReportParameter([Ô]USEREP[Ô], USUARIO)
Dim RPV_RELATORIO As New ReportViewer
Dim RPTSOURCE As ReportDataSource
Dim STRPATH As String

STRPATH = [Ô][Ô]
RPV_RELATORIO = New ReportViewer
RPTSOURCE = New ReportDataSource([Ô]DtSub[Ô], DATASET_GLOBAL(SQL_RELATORIO, TABELA_RELATORIO))
STRPATH = Replace(Application.StartupPath, [Ô]\bin\Debug[Ô], [Ô]\[Ô])

With FRM_RELATORIO

With RPV_RELATORIO

Application.DoEvents()
[ô] Set Processing Mode
.ProcessingMode = ProcessingMode.Local
.Dock = DockStyle.Fill
.SetDisplayMode(DisplayMode.PrintLayout)
.ZoomMode = ZoomMode.PageWidth
With .LocalReport
[ô] Set RDL file
.ReportPath = STRPATH & [Ô]RPT_SUB.rdlc[Ô]
.DataSources.Add(RPTSOURCE)
.SetParameters(New ReportParameter() {USER})
End With
.RefreshReport()
.Visible = True
End With


With FRM_RELATORIO
.Controls.Add(RPV_RELATORIO)
End With

End With

Preencho um dataset que eu chamo de Global através do seguinte código

Dim DTS As New DataSet()
Dim COMAND As SQLiteCommand
Dim CARREGAR As SQLiteDataAdapter

CARREGAR = Nothing

If ABRIR_BANCO() = True Then
COMAND = New SQLiteCommand(SQL, Conexao)
CARREGAR = New SQLiteDataAdapter(COMAND)
End If

CARREGAR.Fill(DTS, T)
Return DTS.Tables(0)

Quando compilo o projeto e solicito o relatorio carrega normalmente com todos os dados. Resolvi aproveitar o codigo para criar um outro relatorio e mudei o nome do procedimento. Para minha surpresa quando eu chamo um relatório os dados são carregado normalmente. Quando eu chamo o outro relatório passando inclusive UMA NOVA SQL e uma nova tabela o retorno é o mesmo relatório chamado anteriormente. Aonde estou errando ?? Alguém poderia me dizer?
Obrigado desde já.

P.S: Este código é muito parecido com um tirado do gotreportviewer e do site da MSDN




ARCADYUM 21/02/2013 12:30:07
#419475
Alguém???
ARCADYUM 21/02/2013 20:47:45
#419504
Pessoal,
Acredito que tenha achado a solução. Pelo menos voltou a funcionar. Agradeço a todos pela atenção.
Caso haja problema de novo conto com a solidariedade de todos.
Obrigado.
Tópico encerrado , respostas não são mais permitidas