none
usar datasource criado por codigo RRS feed

  • Pergunta

  • Ola Pessoal preciso da ajuda de vocês pois não estou conseguindo carregar um datasource via codigo para usa-lo no ReportView.

    Eu fiz o seguinte :

    1) Criei um Dataset e depois um Datatable.

    2) Criei colunas no DataTable para poder desenhar meu relatorio.

    3) Criei o Report1.rdlc, inseri uma TABLE nele e selecionei o Datasource do Dataset criado no item 1.

    4) Inseri o Reportview no form1 e selecionei no ReportViewer Tasks o relatorio criado no item 3

    O codigo do meu programa é o seguinte :

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

    Public Class Form1
        Dim strconexaoSQL As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\SAGE\SAGE_be.accdb;Persist Security Info=False"
        Dim sqlconexao As New OleDbConnection(strconexaoSQL)
        Dim da As New OleDbDataAdapter
        Dim ds As New DataSet
        Dim strSQL As String
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Dim txtdia As String = "11"
            Dim txtano As String = "2011"
            Dim dt As New DataTable
            strSQL = "SELECT SUM(Itens.QtdeProduto * Itens.PrecoUnitario) AS Total, GrupoDeProduto.DescriçãoGrupo As Descricao, Month(Pedido.DataDoPagamento) As Mes FROM (((Itens INNER JOIN Produto ON Itens.CodProduto = Produto.CodProduto) INNER JOIN Pedido ON Itens.Pedido = Pedido.Pedido) LEFT OUTER JOIN GrupoDeProduto ON Produto.Tipo = GrupoDeProduto.CodGrupo) GROUP BY GrupoDeProduto.DescriçãoGrupo, Pedido.Status, Month(Pedido.DataDoPagamento), (Year(Pedido.DataDoPagamento)) HAVING (Pedido.Status = 4 and (Month(Pedido.DataDoPagamento)) = " & txtdia & " and (Year(Pedido.DataDoPagamento)) = " & txtano & ") Order BY GrupoDeProduto.DescriçãoGrupo"
            da = New OleDbDataAdapter(strSQL, sqlconexao)
            da.Fill(ds, "Vendas")
            dt = ds.Tables("Vendas")
           
            Dim myReportDataSource As ReportDataSource = New ReportDataSource("DataSet1", dt)


            ReportViewer1.LocalReport.DataSources.Add(myReportDataSource)

            Me.ReportViewer1.RefreshReport()

        End Sub

    End Class

    Coloquei alguns BreakPoints e pude verificar que o meu DataTable "dt" esta sendo populado corretamente, mas o relatório não mostra nada, somente o cabecalho de cada coluna.

     

    Alguem consegue ver onde esta o erro deste código ?

    Grato,

    Eduardo

    quinta-feira, 10 de novembro de 2011 21:45