2014-01-25 49 views
1

我在VS2010中生成報表時遇到了一個問題。我正在使用RDLC。我的任務是生成一份報告,其中應該在報告的頂部顯示客戶詳細信息,例如姓名,聯繫電話號碼,電子郵件ID等。RDLC文件中的子報表

在正文部分,它應該顯示列表保留詳細信息。

我對象的結構如下:

CustomerDetails: 
     Name 
     Age 
     ContactNumber 
     Email Id 
     List<ReservationDetails> 

ReservationDetails 
     FromDate 
     ToDate 
     Period 
     Amount 

我不知道如何呈現在報表列表。它不是動態的,我在初始加載時獲得了所有細節。 我把報告分成兩部分,第一部分(父)是顯示共同的細節。子報表是顯示預約詳細信息的列表。

回答

2

1-創建您的主報告,顯示客戶詳細信息,你通過傳遞數據集的「客戶」
2 - 添加新報告「rptCustomerReservation」
3-添加數據集,通過採取一個參數的CustomerID
返回列表reauired 4-在主報告中,選擇要添加報告的單元格,插入 - >子報告
5-轉到子報告屬性添加名稱中的rptCustomerReservation並將報告用作子報告字段。
6-選擇文件rptCustomerReservation,在報表數據窗口中,右鍵單擊添加參數,單擊添加參數。給類型ineger。並給出名稱。
7-進入主報告並右鍵單擊子報告,轉至屬性,單擊參數選項卡,給出相同的參數名稱並從數據集下拉列表中選擇參數值。
8-在cs文件中添加以下代碼以註冊並在頁面加載中添加子報告。

public Ctor() 
{ 
    rptViewer.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing); 
} 

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) 
{ 
    List<CATALOG_ITEM_DETAIL> DTCatalogItemDetail; 
    if (e.ReportPath == "CatalogItemListItemDetails") 
    { 
     DTCatalogItemDetail = report.GetCatalogItemDetail(Convert.ToInt32(e.Parameters[0].Values[0])); 
     ReportDataSource ds = new ReportDataSource("dsItemDetails", DTCatalogItemDetail); 
     e.DataSources.Add(ds);  
     } 
    }