2017-06-28 85 views
0

我想在报表查看器中显示故障单列表,并为每个故障单和整个列表提供打印功能,并将整个列表分页为3,5或7个段。但我坚持在第一步:) 我使用subreportreportviwerWindowsFormApplication。 这是我MainReportSubReport报表查看器中的子报表表

sub report and main report

这是设置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 lau因此,我将表格的每一行(dt)都存储在DataRow中,这个文件的名称为dr。看起来这个EventHandler只是使用第一个DataRow的内容。结果是重复票。以下是输出:enter image description here

注意:我完全确定dr中的值。它已经过检查。

我知道我该怎么告诉SubReport为每张票使用不同的DataSource,但我不知道如何实现这个目标。 任何帮助将不胜感激。谢谢你提前。

回答

0

我终于从主报表传递参数,以子报表 解决了这个问题,我编辑我EventHandler这样的:

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