水晶报告可以从对象数据源而不是数据库中获取数据吗?我正在使用vs2008附带的水晶报告。我在c#3.5编码。
我想使用一个返回List<的对象数据源。 MyClass的取代。
当我们将来迁移到ssrs时,是否可以从这个对象数据源获取数据?
答案 0 :(得分:1)
除了ICollection参数之外,SetDataSource还有一个重载。使用它,您可以将简单的对象集合绑定到CR。但这并不比使用数据集灵活。使用数据集,您可以绑定多个相关表并构建更高复杂度的报告。
服务器的迁移对CR没有影响,因为SetDataSource仅适用于断开连接的对象,例如数据集或对象数据源。
答案 1 :(得分:1)
是的,你可以这样做,但你必须将对象包装在一个数组中:
// my crystal report
Rpt rpt = new Rpt();
AirLine lAirLine = (AirLine)cmbAirLine.SelectedItem;
// I added two objects as datasources in report designer
// here aWB.AWBPieceList is List<AWBPiece> where 'AWBPiece' is some class.
rpt.Database.Tables[0].SetDataSource( AWBPieceList.ToArray() );
// the second : objects are mapped to tables by crystal report.
rpt.Database.Tables[1].SetDataSource( new AirLine[] { lAirLine } );