我正在使用带有CrystalReports的vs2008,我正在徘徊如何动态地将数据行添加到* .rpt文件中?(使用c#)。
更详细地说,我想创建一个函数,用可能包含列表的数据填充* .rpt文件(例如“FirstName”,“LastName”,List<“Friend”&gt ;; ...朋友为对象包含多个字段,如“FriendNr”,“Address”,....)。
我目前使用的代码是:
ReportDocument rpt = new ReportDocument();
MemoryStream stream = new MemoryStream();
string filename = filepath + "/myRpt.rpt";
rpt.Load(filename);
rpt.SetParameterValue(0, myObject.FirstName);
rpt.SetParameterValue(1, myObject.LastName);
在rpt文件中我放置了FieldObjects(参数字段),然后通过为这些对象分配所需的值来填充文件(“rpt.SetParameterValue(0,myObject.FirstName);”)
请帮我找到一种方法,用List中包含的数据行填充报告。
非常感谢你的时间。
答案 0 :(得分:1)
我认为不可能以这种方式向报表添加数据行。我建议使用Typed DataSet作为报表数据源。然后,报告可以根据需要显示尽可能多的Friend对象。
答案 1 :(得分:1)
动态“行”方法:
1)。您可以向参数的CurrentValues集合添加更多项目。不确定您在报告中如何使用它,但它可能适用于您的目的。查看ParameterFieldDefinition类以获取更多信息。
2)。创建DataSet,根据需要进行修改,然后将其分配给报表。使用ReportDocument.SetDataSource()方法以编程方式将报表绑定到数据。
3)。另一种方法是构建一个使用XML数据的报表,然后以编程方式修改XML,然后刷新报表。