Usuário com melhor resposta
Como popular um reportviewer via código em VB.Net?

Pergunta
-
Respostas
-
Existem algumas maneiras depende do que você deseja, por exemplo pode passar um Dataset para o report ou criar parametros depende do que deseja popular veja este ex :
- Marcado como Resposta Marcio_Nogueira domingo, 17 de novembro de 2013 21:11
-
Alterei algumas coisas aqui no seu codigo repare que no item Report.rdlc eu criei um Dataset chamado DataSet1 olha na hora de add o datasource, eu coloco primeiro o nome do dataset pra qual vai enviar os dados e depois a tabela que sera carregado os dados note que usei sql server mas desde que sua consulta traga dados não tem problema o bd usado. Na pagina aspx coloquei o codigo no page load e um if verificando se é postback pq senão ele entra em "loop infinito" e não carrega o relatorio na pagina aspx adicionei um scriptmanager para rodar o relatorio e o item report que le qual relatorio deseja rodar olhe o exemplo em aspx e code behind.
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Report_VB.aspx.vb" Inherits="WebApplication1_ReportVB.Report_VB" %> <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <rsweb:ReportViewer ID="reportVB" runat="server" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt"> <LocalReport ReportPath="Report1.rdlc"> <DataSources> <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" /> </DataSources> </LocalReport> </rsweb:ReportViewer> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="WebApplication1_ReportVB.PM17140DataSetTableAdapters.tblGroupTableAdapter"> </asp:ObjectDataSource> </div> </form> </body> </html>
Imports System.Data Imports System.Data.Sql Imports System.Data.SqlClient Public Class Report_VB Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim strConexao, strSql As String strConexao = "Data Source=DANIEL-PC\SQLEXPRESS;Initial Catalog=PM17140;Integrated Security=True;" strSql = "select * from tblGroup" Dim conn As SqlConnection conn = New SqlConnection(strConexao) Dim daCursos As SqlDataAdapter daCursos = New SqlDataAdapter(strSql, conn) Dim dsCursos As DataSet dsCursos = New DataSet Try conn.Open() daCursos.Fill(dsCursos, "tblGroup") Finally conn.Close() End Try Dim rpt As New Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", dsCursos.Tables("tblGroup")) reportVB.LocalReport.DataSources.Clear() reportVB.LocalReport.DataSources.Add(rpt) End If End Sub End Class
- Marcado como Resposta Marcio_Nogueira domingo, 17 de novembro de 2013 22:18
Todas as Respostas
-
Existem algumas maneiras depende do que você deseja, por exemplo pode passar um Dataset para o report ou criar parametros depende do que deseja popular veja este ex :
- Marcado como Resposta Marcio_Nogueira domingo, 17 de novembro de 2013 21:11
-
-
-
Dim strConexao, strSql As String
strConexao = "Server=localhost;Port=5432;User Id=postgres;Password=Gx12J@;Database=website;"
strSql = "select curso,descricao,publico_alvo from cursos"Dim conn As NpgsqlConnection
conn = New NpgsqlConnection(strConexao)Dim daCursos As NpgsqlDataAdapter
daCursos = New NpgsqlDataAdapter(strSql, conn)Dim dsCursos As DataSet
dsCursos = New DataSetDim rpt As New ReportDataSource("dsCursos", dsCursos.Tables("cursos"))
Try
conn.Open()
daCursos.Fill(dsCursos, "cursos")
Me.rptCursos.LocalReport.DataSources.Add(rpt)
Finally
conn.Close()
End TryAtenciosamente, Marcio Nogueira Cardoso Pinto.
-
Alterei algumas coisas aqui no seu codigo repare que no item Report.rdlc eu criei um Dataset chamado DataSet1 olha na hora de add o datasource, eu coloco primeiro o nome do dataset pra qual vai enviar os dados e depois a tabela que sera carregado os dados note que usei sql server mas desde que sua consulta traga dados não tem problema o bd usado. Na pagina aspx coloquei o codigo no page load e um if verificando se é postback pq senão ele entra em "loop infinito" e não carrega o relatorio na pagina aspx adicionei um scriptmanager para rodar o relatorio e o item report que le qual relatorio deseja rodar olhe o exemplo em aspx e code behind.
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Report_VB.aspx.vb" Inherits="WebApplication1_ReportVB.Report_VB" %> <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <rsweb:ReportViewer ID="reportVB" runat="server" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt"> <LocalReport ReportPath="Report1.rdlc"> <DataSources> <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" /> </DataSources> </LocalReport> </rsweb:ReportViewer> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" TypeName="WebApplication1_ReportVB.PM17140DataSetTableAdapters.tblGroupTableAdapter"> </asp:ObjectDataSource> </div> </form> </body> </html>
Imports System.Data Imports System.Data.Sql Imports System.Data.SqlClient Public Class Report_VB Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim strConexao, strSql As String strConexao = "Data Source=DANIEL-PC\SQLEXPRESS;Initial Catalog=PM17140;Integrated Security=True;" strSql = "select * from tblGroup" Dim conn As SqlConnection conn = New SqlConnection(strConexao) Dim daCursos As SqlDataAdapter daCursos = New SqlDataAdapter(strSql, conn) Dim dsCursos As DataSet dsCursos = New DataSet Try conn.Open() daCursos.Fill(dsCursos, "tblGroup") Finally conn.Close() End Try Dim rpt As New Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", dsCursos.Tables("tblGroup")) reportVB.LocalReport.DataSources.Clear() reportVB.LocalReport.DataSources.Add(rpt) End If End Sub End Class
- Marcado como Resposta Marcio_Nogueira domingo, 17 de novembro de 2013 22:18
-