今天在学习RDLC报表的时候碰到个子报表显示的问题,研究了一下午终于搞定了,其实还挺简单的主要就下面几个步骤了
1.设计主报表和子报表
2.打开主报表,在想要做钻取的字段上右击,选择"占位符属性",指定报表的值就填子报表的名称,参数名称自定义,值就用主子报表的外键字段
3.打开子报表,报表数据里添加一个参数,名称和上一步里的参数名称一致,这里用的是"cname"
4.右击子报表的表格,选择"tablix属性",表达式的值就用上一步里添加的参数,值就用主子报表的外键字段,设计的步骤就到此为止了
5.在web上添加reportviewer控件,指定数据集和数据源(这里是主报表的),为reportviewer控件添加一个Drillthrought事件(在钻取字报表时发生),事件中添加如下代码:
LocalReport lr = (LocalReport)e.Report;
//DataSet1是子报表的数据集,要和设计主报表的数据集一致,GetHealthCheckDet方法返回的是datatable,是子报表的数据源
ReportDataSource rds = new ReportDataSource("DataSet1", GetHealthCheckDet());
lr.DataSources.Add(rds);
就这几个简单的步骤我用了一个下午才搞定,哎,我到底适不适合做码农啊,还是写下来吧,因为关于rdlc报表的资料太少了