Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230

    [vb 2012] Reportviewer non mi visualizza i risultati della query

    pregasi evitare di suggerirmi il sito "gotreportviewer": non ci si capisce niente.

    il mio codice è questo:
    codice:
    su modulo:
     Public AccessConn As System.Data.OleDb.OleDbConnection
        Public AccessCommand As System.Data.OleDb.OleDbCommand
        Public AccessReader As System.Data.OleDb.OleDbDataReader
        Public BS_Tab As New BindingSource
    Public StrMSG As String, QueryCMD As String
    
    su codice del form:
    
     Dim rds As Microsoft.Reporting.WinForms.ReportDataSource = New Microsoft.Reporting.WinForms.ReportDataSource
    
                        QueryCMD = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\pippo\gestv.accdb;Persist Security Info=False;"
                        AccessConn = New System.Data.OleDb.OleDbConnection(QueryCMD)
                        AccessConn.Open()
    
                        QueryCMD = "SELECT * FROM tblNominativi"
                        AccessCommand = New System.Data.OleDb.OleDbCommand(QueryCMD, AccessConn)
                        AccessCommand.CommandType = CommandType.Text
                        BS_Tab.DataSource = AccessCommand.ExecuteReader(CommandBehavior.CloseConnection)
    
                        rds.Name = "gevar.dataset1"
                        rds.Value = BS_Tab
    
                        ReportViewer1.LocalReport.ReportPath = My.Application.Info.DirectoryPath & "\drprubrica.rdlc"
                        ReportViewer1.LocalReport.ReportEmbeddedResource =  My.Application.Info.DirectoryPath & "\drprubrica.rdlc"
                        ReportViewer1.LocalReport.DataSources.Add(rds)
                        ReportViewer1.RefreshReport()
    
                        AccessConn.Close()
    Mi visualizza solo l'intestazione del report, con i nomi delle colonne ma i dati non ci sono.

    Non capisco dove sbaglio. ho cercato per 3 ore in rete ma non riesco a trovare l'errore.

  2. #2
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230
    Risolto così:
    (codice nel form load)
    codice:
      Dim rdsReportDataSource1 As Microsoft.Reporting.WinForms.ReportDataSource = New Microsoft.Reporting.WinForms.ReportDataSource
            'mi connetto al database
            QueryCMD = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\gestv.accdb;Persist Security Info=False;"
            AccessConn = New System.Data.OleDb.OleDbConnection(QueryCMD)
            AccessConn.Open()
            'carico il bindingsource con la query 
            QueryCMD = "SELECT * FROM tblNominativi"
            AccessCommand = New System.Data.OleDb.OleDbCommand(QueryCMD, AccessConn)
            AccessCommand.CommandType = CommandType.Text
            BS_Tab.DataSource = AccessCommand.ExecuteReader(CommandBehavior.CloseConnection)
            'assegno il bindingsource alla variabile reportdatasource. IMPORTANTE: attenzione a che il nome 
            'sia uguale a quello indicato nelle proprietà in modalità disegno del report
            rdsReportDataSource1.Name = "DataSet1"
            rdsReportDataSource1.Value = BS_Tab
            'carico le proprietà del reportviewer
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
            ReportViewer1.LocalReport.ReportPath = Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\drprubrica.rdlc"
            ReportViewer1.LocalReport.ReportEmbeddedResource = Replace(My.Application.Info.DirectoryPath, "\bin\debug", "", 1, -1, CompareMethod.Text) & "\drprubrica.rdlc"
            ReportViewer1.LocalReport.DisplayName = "RUBRICA"
            ReportViewer1.LocalReport.DataSources.Clear()  'IMPORTANTE: altrimenti tiene in memoria più origini e fa casino
            ReportViewer1.LocalReport.DataSources.Add(rdsReportDataSource1)
            ReportViewer1.RefreshReport()
            'ora chiudo la connessione al database
            AccessConn.Close()
    Ora ho rimasto solo un problema: nell'anteprima del reportviewer mi visualizza solo un pagina con una decina di righe, invece io nella query ho 40 righe.
    Da che cosa può dipendere?

  3. #3
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230
    Ora ho rimasto solo un problema: nell'anteprima del reportviewer mi visualizza solo un pagina con una decina di righe, invece io nella query ho 40 righe.
    Da che cosa può dipendere?
    Continuo questa bella discussione ricca di interventi dicendo che quanto scritto sopra si tratta di un gigantesco e vergognoso bug dell'oggetto ReportViewer.
    Al link qui di seguito ci sono alcuni utenti che hanno lo stesso problema: http://social.msdn.microsoft.com/For...-36bd2d7a4b41/

    Negli ultimi messaggi alcuni suggeriscono di cambiare la modalità di visualizzazione del ReportViewer all'interno dell'evento RenderingComplete ma non a tutti funziona, per esempio a me non funziona affatto, anzi si blocca il programma in una specie di ciclo senza fine.

    Viene veramente un profondo disgusto con le numerose complicazioni e i bug dati dalla microsoft.

    Comunque se qualcuno avesse qualche soluzione, visto che i report sono un elemento fondamentale dei programmi, prego scriverla qui.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.