+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

Reportviewer popolato dinamicamente.

  1. #1
    L'avatar di massimo74rn
    massimo74rn non  in linea Scolaretto
    Post
    300
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti, premetto che sono un programmatore vb.net e lavoro esclusivamente via web, ora un cliente mi chiede un'applicazione locale e mi scontro con questo problema:

    Devo generare un report con reportviewer, ma non riesco a capire bene il procedimento.
    Devo per forza fare la creazione guidata?

    poi per far funzionare il tutto devo spostare i report .rdlc nella cartella bin/debug????

    io ho scritto il seguente codice:

    Imports System.Data
    Imports System.Data.OleDb
    
    Public Class Form1
        Dim cn As OleDbConnection
        Dim dap As OleDbDataAdapter
        Dim dst As DataSet
        Dim dt As DataTable
        Dim cmd As OleDbCommand
        Dim sql As String
        Dim x As Integer
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:/Dati.mdb")
    
            dap = New OleDbDataAdapter("SELECT * FROM Comuni", cn)
            dst = New DataSet
            'dap.Fill(dst, "comuni")
            'MsgBox(dst.Tables("comuni").Rows(10).Item("Comune"))
            'Exit Sub
    
            dt = dst.Tables.Add("Comuni")
    
            'Me.ComuniTableAdapter.Fill(Me.DataSet1.Comuni)
            'Me.ComuniTableAdapter.Fill(dt)
    
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
            ReportViewer1.LocalReport.ReportPath = System.Environment.CurrentDirectory & "\Report1.rdlc"
            ReportViewer1.LocalReport.DataSources.Clear()
            ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("Comuni", dst.Tables("Comuni")))
            ReportViewer1.DocumentMapCollapsed = True
            ReportViewer1.RefreshReport()
    
        End Sub
    End Class
    
    L'errore il seguente:
    non stata fornita un'istanza dell'origine dei dati per l'origine dei dati 'DataSet1'
    ℹ️ Leggi di pi su massimo74rn ...

  2. #2
    L'avatar di elisab
    elisab non  in linea Scribacchino
    Post
    1,750
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao
    avevo trafficato un po' con i report, ma VB express non ha il tool per creare i Rdlc e VWD express non l'ho mai installato quindi se passa qualcuno di pi esperto...

    poi per far funzionare il tutto devo spostare i report .rdlc nella cartella bin/debug????
    ReportViewer1.LocalReport.ReportPath = System.Environment.CurrentDirectory & "\Report1.rdlc"
    
    No, lo metti dove vuoi devi solo aggiornare il ReportPath adesso lo cerca in bin\debug.


    Per quanto riguarda l'errore devi mettere a posto i nomi di Dataset, Datatable e di ReportDataSource (che dovrebbe essere nomeDataset_nomeDatatable). Guarda qui
    E poi il datatable comuni vuoto.

    Dall'errore che ricevi il ds dovrebbe chiamarsi DataSet1 e ipotizzando che quando hai configurato il rdlc tu abbia usato un dt chiamato Comuni
    Imports System.Data
    Imports System.Data.OleDb
    
    Public Class Form1
        Dim cn As OleDbConnection
        Dim dap As OleDbDataAdapter
        Dim dst As DataSet
        Dim dt As DataTable
        Dim cmd As OleDbCommand
        Dim sql As String
        Dim x As Integer
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:/Dati.mdb")
    
            dap = New OleDbDataAdapter("SELECT * FROM Comuni", cn)
            dst = New DataSet("DataSet1")
            dap.Fill(dst, "Comuni")
    
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
            ReportViewer1.LocalReport.ReportPath = System.Environment.CurrentDirectory & "\Report1.rdlc"
            ReportViewer1.LocalReport.DataSources.Clear()
            ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_Comuni", dst.Tables("Comuni")))
            ReportViewer1.DocumentMapCollapsed = True
            ReportViewer1.RefreshReport()
    
        End Sub
    End Class
    
    ℹ️ Leggi di pi su elisab ...

  3. #3
    L'avatar di massimo74rn
    massimo74rn non  in linea Scolaretto
    Post
    300
    Like Inviati  
    0
    Like Ricevuti  
    0
    grazie per i suggerimenti ma proprio non riesco. Ho creato il dataset1, il report1.rdl e tutto funziona regolarmente, poi su un pulsante ho messo il codice qui sotto e nulla.

    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:/Dati.mdb")
    
            dap = New OleDbDataAdapter("SELECT * FROM Comuni", cn)
            'DataSet1 = New DataSet("DataSet1")
            dap.Fill(DataSet1, "Comuni")
    
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
            ReportViewer1.LocalReport.ReportPath = System.Environment.CurrentDirectory & "\Report1.rdlc"
            ReportViewer1.LocalReport.DataSources.Clear()
            ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", DataSet1.Tables("Comuni")))
            ReportViewer1.DocumentMapCollapsed = True
            ReportViewer1.RefreshReport()
    
        End Sub
    
    L'errore ancora il seguente:
    non stata fornita un'istanza dell'origine dei dati per l'origine dei dati 'DataSet1'
    ℹ️ Leggi di pi su massimo74rn ...

  4. #4
    L'avatar di elisab
    elisab non  in linea Scribacchino
    Post
    1,750
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao
    l'istanza si chiama Dataset1 ma il DatasetName qual , metti un punto d'interruzione e controlla.

    Non so se hai aperto l'rdlc e sei andato a vedere nell'xml quali sono i nomi corretti (che per me sarebbe la cosa da fare) ma di solito il repotDataSource ha un name del tipo nomeDataset_nomeDatatable hai messo solo DataSet1.

    Edit nell'rdlc sopra alla query trovi le informazioni che ti servono.
    CustomerReportDataset il nome del dataset tipizzato usato per poter creare il report
    Customer nome del datatable
    CustomerReportDataSet_Customers il ReportDataSorce name
        <DataSet Name="CustomerReportDataSet_Customers">
          <rd:DataSetInfo>
            <rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>
            <rd:DataSetName>CustomerReportDataSet</rd:DataSetName>
            <rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>
            <rd:TableAdapterName>CustomersTableAdapter</rd:TableAdapterName>
            <rd:TableName>Customers</rd:TableName>
          </rd:DataSetInfo>
          <Query>
            <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
            <CommandText>SELECT        Customers.CustomerID, Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Address, Customers.City, 
                             Customers.Region, Customers.PostalCode, Customers.Country, Customers.Phone, Customers.Fax, Orders.OrderDate, Orders.RequiredDate, 
                             Orders.ShippedDate
    FROM            Customers INNER JOIN
                             Orders ON Customers.CustomerID = Orders.CustomerID</CommandText>
            <DataSourceName>NorthwindConnectionString</DataSourceName>
          </Query>
    
    Altre informazioni (ad esempio CustomersTableAdapter o la connectionString memorizzata all'inizio) non devono corrispondere, quelle 3 s.
    Ultima modifica di elisab; 30-06-2011 03:21 
    ℹ️ Leggi di pi su elisab ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Treeview popolato da tabella
    Da Taurus dei miracoli nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 28-11-2020, 12:33
  2. ReportViewer
    Da gnappi nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 15-11-2020, 17:26
  3. ReportViewer
    Da delfino73 nel forum Visual Basic .Net
    Risposte: 16
    Ultimo Post: 05-03-2013, 14:43
  4. [ASP.Net]ReportViewer
    Da sanfra nel forum ASP 3, ASP .Net
    Risposte: 1
    Ultimo Post: 05-10-2007, 18:26
  5. ComboBox popolato a due valori
    Da lelo74 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 21-04-2006, 09:16