在Crystal Report 2008中使用.net对象作为数据源

时间:2009-11-30 08:10:06

标签: .net datasource crystal-reports-2008

全部,

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

并得到了同样的错误。

将SetDataSource行更改为:

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

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