博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RDLC子报表
阅读量:6933 次
发布时间:2019-06-27

本文共 1540 字,大约阅读时间需要 5 分钟。

本文转载自:

RDLC子报表主要设置:

    1 .先添加报表控件,在控件中拉入报表的表格Table 控件,在报表工具栏中拖入子报表控件到Table的某个单元格.

    2 .在子报表控件上右键子报表属性,选择选项卡常规-名称 添加子报表的名称 可自定义,将此报表用做子报表       中添加 已存在的报表名称,例如SaleMonthReport 不需要加.rdlc 后缀名。   

   3.选择参数选项卡,添加参数(参数可以使主报表的数据集内容,参数等) 名称可以自定义(注意:自定义的名称必须和子报表参数同名,并且在子报表添加 参数后 在测试,否则会报 本地报表呈现错误,value 值不能为Null的错误),值为数据集值、参数、内置字段、固定值 等。

到此 基本子报表配置完成。后面通过代码注册子报表   

  4.在aspx后台代码中 其他代码和普通代码类似,主要注册主报表的 SubReportProcessing 事件

ReportViewer1.LocalReport.SubreportProcessing += new     SubreportProcessingEventHandler(LocalReport_SubreportProcessing);  

   5.在LocalReport_SubreportProcessing 中添加子报表的数据源

   这里通过 string fname=e.Parameters["fname"].Values[0]; 取得子报表参数值,这里根据参数值 取得报表的数据(还有一种方法是这里不适用参数取子报表的数据,将所有的数据全部取出,然后报表会根据参数自动显示符合参数的数据内容,当数据量庞大时,效率不高) .

Datatable dtDetail=new class1().getModelByName(fname); //这个最好写在外面,为什么大家应该知道,因为有多少条主报表数据,子报表就会循环多少次。

 e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dtDetail", dtDetail)); //添加子报表的数据

 

 

完整代码:

ReportViewer1.Visible=true;         

ReportViewer1.LocalReport.DataSources.Clear();            

ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dtInfo));  

ReportViewer1.LocalReport.SubreportProcessing += new     SubreportProcessingEventHandler(LocalReport_SubreportProcessing);           

ReportViewer1.LocalReport.Refresh();

 

 

 void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)         {

  string fname=e.Parameters["fname"].Values[0];

  Datatable dtDetail=new class1().getModelByName(fname);

  e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dtDetail", dtDetail));

}

 

一路走来,一切都在改变,唯一不变的是心中的那份执着.

 

你可能感兴趣的文章
代码中获得系统分区
查看>>
Java8读文件仅需一行代码
查看>>
[ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器
查看>>
《赋能》 读后感
查看>>
Fastq-dump:我的日常命令
查看>>
vlayout 1.2.20 发布,阿里 LayoutManager 定制化布局
查看>>
访中科曙光智能计算技术总监许涛:重新认识面向未来的AI服务器和云计算中心...
查看>>
.NET 调用c++库注意事项
查看>>
重磅发布: 阿里云WAF日志实时分析上线 (含视频)
查看>>
深度|10分钟读懂阿里巴巴高级专家在Flutter Live2018的分享
查看>>
大规模深度学习预测场景下 codegen 的思考与应用
查看>>
spring框架使用Quartz执行定时任务实例详解
查看>>
全链路跟踪系统设计与实践(转载)
查看>>
支付接口教程,详解支付宝接口(二)
查看>>
SourceTree 教程文档(了解界面)
查看>>
wpf 依赖属性和附加属性
查看>>
rocketMq-producer介绍
查看>>
谨慎的Waymo CEO:未来几十年,自动驾驶无法做到无处不在
查看>>
Django搭建个人博客(二)
查看>>
SSM+maven实现答题管理系统(二)
查看>>