【问题标题】:Subreport In Reportviewer TableReportviewer 表中的子报表
【发布时间】:2017-06-28 13:27:20
【问题描述】:

我想在报告查看器中显示一个工单列表,并为每个工单和整个列表提供打印功能,并将整个列表分页为 3、5 或 7 个段。但我坚持第一步:) 我在reportviwer 中使用subreportWindowsFormApplication 中。 这是我的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 启动了两次。因此,我将表的每一行 (dt) 存储在名为 DataRowDataRow 中。看来这个EventHandler 只使用了第一个DataRow 内容。结果是重复的票。这是输出:

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

我知道我应该告诉SubReport 为每张票使用不同的DataSource,但我不知道如何实现这个目标。 任何帮助将不胜感激。在此先感谢您。

【问题讨论】:

    标签: c# reporting reportviewer subreport


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2017-07-19
      • 2010-10-14
      • 2010-09-22
      相关资源
      最近更新 更多