我想在报表查看器中显示票证列表,并为每张票证和整个列表提供打印功能,并将整个列表分页为3个,5个或7个段。但我已经陷入了第一步:)
我在subreport
的{{1}}中使用reportviwer
。
这是我的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++;
}
lauches两张票。因此,我将表格的每一行(EventHandler
)存储在一个名为{{1}的dt
中}。看来DataRow
只使用了第一个dr
内容。结果就是重复的门票。这是输出:
注意:我完全确定EventHandler
中的值。之前已经过检查。
我知道我应该告诉DataRow
每张门票使用不同的dr
,但我不知道如何实现这一目标。
任何帮助将不胜感激。谢谢你提前。
答案 0 :(得分:0)
我终于通过将参数从主报告传递到子报告来解决了这个问题
我像这样编辑了我的EventHandler
:
void SubreportProcessingEventHandler(object sender , SubreportProcessingEventArgs e)
{
e.DataSources.Add(new ReportDataSource("DataSet1", dt));
}