RDLC文件中的子报表

时间:2014-01-25 10:48:37

标签: visual-studio-2010 rdlc subreport

我在VS2010中生成报告时遇到一个问题。我正在使用RDLC。我的任务是生成一份报告,其中应在报告的顶部显示客户详细信息,如姓名,联系电话,电子邮件ID等。

在正文部分,它应显示列表预订详细信息。

我的对象结构如下:

CustomerDetails:
        Name
        Age
        ContactNumber
        Email Id
        List<ReservationDetails>

ReservationDetails
        FromDate
        ToDate
        Period
        Amount

我不知道如何在子报表中呈现List。它不是动态的,我在初始加载中获得了所有细节。     我将报告分成两部分,第一部分(父母)是为了显示共同的细节。和子报告将显示预订详细信息列表。

1 个答案:

答案 0 :(得分:2)

1-创建主报表,通过传递数据集“客户”来显示客户详细信息 2-添加新报告“rptCustomerReservation”
3-通过获取参数CustomerID来添加返回List的数据集 4-在主报告中,选择要添加报告的单元格,插入 - &gt;分报告
5-转到“子报告”属性,在名称中添加rptCustomerReservation,并将报告用作子报告字段 6-选择File rptCustomerReservation,在Report data窗口中,右键单击Add Prameter,单击Add parameter。给类型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);    
      }
  }