2

大家好,

我创建了一个 .net 对象(例如:)A,其中包含从表中收集的数据。接下来,我创建一个List<A>()并传递给对象的SetDataSource()方法ReportDocument。当我运行时,抛出了一个异常:

"CrystalDecisions.CrystalReports.Engine.DataSourceException: The data source object is invalid"

我不知道上面的异常,错误消息不清楚。有人可以为我解释吗?例如:.net 对象必须从 ISerializable 继承.....

4

1 回答 1

4

我遇到了同样的错误,但是在使用对象作为报表的数据源时遇到了它。我有以下代码:

var myObj = new MyDataObject();
cr.Load(@"C:\report.rpt");
cr.SetDataSource(myObj);

并得到同样的错误。

将 SetDataSource 行更改为:

cr.SetDataSource(new [] { myObj });

帮助,它现在工作正常。换句话说,尝试将您的对象包装在一个数组中。如果您使用的是列表,请先尝试将其转换为数组(使用 .ToArray() 方法)。

于 2010-04-07T12:03:12.720 回答