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 .....

È stato utile?

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 ()).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top