2017-06-28 121 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)); 
    } 
相關問題