【发布时间】:2017-06-28 13:27:20
【问题描述】:
我想在报告查看器中显示一个工单列表,并为每个工单和整个列表提供打印功能,并将整个列表分页为 3、5 或 7 个段。但我坚持第一步:)
我在reportviwer 中使用subreport 在WindowsFormApplication 中。
这是我的MainReport 和SubReport:
这是我设置ReportEmbeddedResource后的代码:
reportViewer1.LocalReport.DataSources.Clear();
ReportDataSource data = new ReportDataSource("DataSet1", dt);
reportViewer1.LocalReport.DataSources.Add(data);
this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubreportProcessingEventHandler);
reportViewer1.RefreshReport();
SubreportProcessingEventHandler中的代码:
int i = 0;
void SubreportProcessingEventHandler(object sender , SubreportProcessingEventArgs e)
{
DataRow dr = dt.Rows[i];
e.DataSources.Add(new ReportDataSource("DataSet1", (object)dr.Table));
i++;
}
因为我的报告应该显示两张票,这个 EventHandler 启动了两次。因此,我将表的每一行 (dt) 存储在名为 DataRow 的 DataRow 中。看来这个EventHandler 只使用了第一个DataRow 内容。结果是重复的票。这是输出:
注意:我完全确定dr 中的值。之前已经查过了。
我知道我应该告诉SubReport 为每张票使用不同的DataSource,但我不知道如何实现这个目标。
任何帮助将不胜感激。在此先感谢您。
【问题讨论】:
标签: c# reporting reportviewer subreport