Dopo molte ricerche, studio e fatica, sono riuscito a creare i Report con Visual Studio 2017 (VB .Net) e poi a stamparli in PDF. Peccato che la stampa in PDF funzioni solo in Progettazioe: quando cerco di ottenerla dall'eseguibile, ottengo il seguente Messaggio di errore:
"Errore nella Sub ___ della Form____: 5 - Errore durante la creazione del Form. Per informazioni dettagliate vedere Exception.InnerException. Errore: Non è stato possibile caricare il file o l’assembly ‘Microsoft.ReportViewer.WinForms’ Version 15.0.0.0, Culture=neutral, PublicKeyToken=898545dc8080cc91 o una delle relative dipendenze. Impossibile trovare il file specificato.”
Pensando che il problema fosse il codice relativo alla creazione del File .pdf, ho provato semplicemente ad aprire la Form contenente il ReportViewer (senza chiedere la stampa in PDF):
codice:Private Sub FormV1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try ' questa riga di codice carica i dati nella tabella 'SisAgentiDataSet.OrigineReportOrdine'. ' È possibile spostarla o rimuoverla se necessario. Me.OrigineReportVarCliTableAdapter.Fill(Me.SisAgentiDataSet.OrigineReportVarCli) Me.ReportViewer1.RefreshReport() Catch ex As Exception MessageBox.Show("Errore nella Sub ''FormVarCli_Load'' della Form ''FormVarCli'': " & Err.Number & " - " & Err.Description) End Try End Sub
come prima, funziona in Progettazione ma NON funziona dal File.exe. Mi da sempre lo stesso messaggio di errore.
Quindi ipotizzo che il problema stia nel fatto che il File.exe non è in grado di aprire una Form che contiene un ReportViewer.
In un thread molto simile a questo mio, trovato sfogliando il Web, sembrava che la soluzione fosse di posizionare l'Assembly nella stessa Directory dell'eseguibile e di cambiare il riferimento nel Progetto e poi di installare il Runtime di ReportViewer. Si trattava però di Visual Studio 2012.
Ho comunque fatto quanto suggerito per il posizionamento ed il riferimento dell'Assembly, ma non ho potuto installare il Runtime di ReportViewer 2017 che ancora non esiste (o almeno io non l'ho trovato). Credo che si possa trovare una soluzione al Runtime nei pacchetti NuGet, ma non so quale sia il più adatto alle mie necessità.
Comunque spero che qualcuno possa darmi una mano anche più in generale.
Molte grazie in anticipo