Utilizzare l'oggetto .net come origine dati in Crystal Report 2008
-
10-07-2019 - |
Domanda
Ciao a tutti
Ho creato un oggetto .net (es: A
) che contiene dati raccolti da tabelle.
Successivamente, creo un List<A>()
e passo al SetDataSource()
metodo dell'oggetto ReportDocument
.
Quando corro, è stata lanciata un'eccezione:
"CrystalDecisions.CrystalReports.Engine.DataSourceException: The data source object is invalid"
Non conosco l'eccezione sopra, il messaggio di errore non è chiaro. Qualcuno può spiegare per me? es: l'oggetto .net deve ereditare da ISerializable .....
Soluzione
Ho riscontrato lo stesso errore, ma l'ho riscontrato durante l'utilizzo di un oggetto come origine dati per il rapporto. Ho avuto il seguente codice:
var myObj = new MyDataObject();
cr.Load(@"C:\report.rpt");
cr.SetDataSource(myObj);
e ha ottenuto lo stesso errore.
Modifica della riga SetDataSource in questo:
cr.SetDataSource(new [] { myObj });
ha aiutato e ora funziona correttamente. In altre parole, prova a avvolgere il tuo oggetto in un array. Se stai usando un elenco, prova prima a convertirlo in un array (usa il metodo .ToArray ()).