Reportviewer 中的子报表 Table

Subreport In Reportviewer Table

我想在报告查看器中显示工单列表,并为每张工单和整个列表提供打印功能,并将整个列表分页为 3、5 或 7 段。但我一直停留在第一步:) 我在 WindowsFormApplication 中使用 subreport in reportviwer。 这是我的 MainReportSubReport:

这是我设置后的代码 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 发射两张 times.Thus,我将 table(dt) 的每一行存储在 DataRow 被命名为 dr。似乎这个 EventHandler 只使用了第一个 DataRow 内容。结果是重复的票。这是输出:

注意:我完全确定dr中的值。之前查过

我知道我应该告诉 SubReport 对每张票使用不同的 DataSource,但我不知道如何实现这个目标。 任何帮助都会大大appreciated.Thank你提前。

我终于通过将参数从主报表传递到子报表解决了这个问题 我这样编辑 EventHandler

   void SubreportProcessingEventHandler(object sender , SubreportProcessingEventArgs e)
    {
        e.DataSources.Add(new ReportDataSource("DataSet1", dt));
    }