我在VS2010中生成报告时遇到一个问题。我正在使用RDLC。我的任务是生成一份报告,其中应在报告的顶部显示客户详细信息,如姓名,联系电话,电子邮件ID等。
在正文部分,它应显示列表预订详细信息。
我的对象结构如下:
CustomerDetails:
Name
Age
ContactNumber
Email Id
List<ReservationDetails>
ReservationDetails
FromDate
ToDate
Period
Amount
我不知道如何在子报表中呈现List。它不是动态的,我在初始加载中获得了所有细节。 我将报告分成两部分,第一部分(父母)是为了显示共同的细节。和子报告将显示预订详细信息列表。
答案 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);
}
}