Dev Express Report 學習總結(三)關於子報表Sub-Report的使用


     子報表即在一個Report(主報表)中嵌入另一個Report(子報表),從理論上來講,任何一個Report都可以作為一個子報表,但在實際使用過程中,只有主報表和子報表構成一對多關系時才會使用子報表。使用時要注意以下幾點:

  1. 使用XRSubreport控件:創建sub-report時,要注意從主報表傳入子報表的參數要與子報表的接收參數一一對應且類型相同;

  2. FilterString:對於主子報表間的參數傳遞,主要目的是對sub-report中的記錄進行過濾,主要通過設置ReportTask中的FilterString來完成,對於如何使用FilterString,在此不做贅述;

  3. 報表DataSource的代碼設定:在此需要注意的一個問題是,我創建了CalculatedField並使用子報表的接收參數來進行參數的運算,我可以獲取到子報表的接收參數,但對於CalculatedField運算的結果,總顯示為空,后來找到了該問題的解決辦法,主要就是由於沒有設置sub-report的DataSource,導致CalculatedField沒有進行計算,所以顯示為空。以下為設置sub-report DataSource的具體方法:

using (var rptMain = new MainReportName())
{
       //Set the DataSource to main-report.
    rptMain.DataSource = (dataprep.GetMainReportDataList());
    //Set the DataSource to sub-report.
    XRSubreport detailReport = rptMain.Bands[BandKind.ReportFooter].FindControl("SubReportName", true) as XRSubreport;
    detailReport.ReportSource.DataSource = dataprep.GetSubReportDataList();
}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM