RDLC报表实现页汇总和总合计

最近公司做项目要用到RDLC报表,站在前人的肩膀上学习了一下RDLC报表的实现方法,控件的数据源的建立我就不陈述了,网上有很多前人写的资料供学习。我在这篇博客里要记录的主要是报表按页汇总数据(每页展示25行数据)的实现方法。我的报表中用到的数据库是微软的NorthWind示例数据库。
1、首先设计出如下的打印模板
RDLC报表实现页汇总和总合计
为表格中的每行数据添加序号的方法为:添加一列序号列,把文本框内的表达式置为=RowNumber(Nothing)。
2、选中展示序号值的单元格右击选择添加组——行组——父组,记住是行组不是列组
RDLC报表实现页汇总和总合计
3、默认按ProductID进行分组
RDLC报表实现页汇总和总合计
4、添加分组后表格呈现如下样式
RDLC报表实现页汇总和总合计
列名为ProductID,列值为绑定的ProductID字段,为了防止造成误解,我们将列名置空,列值单元格中的表达式为=Int((RowNumber(Nothing)-1)/25)。
5、右击单元格选择表达式,设置表达式为=Int((RowNumber(Nothing)-1)/25)
RDLC报表实现页汇总和总合计
看一下预览效果
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
6、实现按页汇总即按页小计功能
RDLC报表实现页汇总和总合计
右击单元格选择插入行——组内部-下方(看清楚是在刚才新建组的单元格内插入千万不要在序号值单元格内插入行
新建好后呈现如下样式
RDLC报表实现页汇总和总合计
7、在小计所在行,种类编号列内的列值的表达式为=sum(Fields!CategoryID.Value),单价列内列值的表达式为=sum(Fields!UnitPrice.Value)
设置好后呈现如下样式
RDLC报表实现页汇总和总合计
运行预览一下
RDLC报表实现页汇总和总合计
嗯嗯嗯呃呃…好像并没有出现我们想要的效果…这是因为我们少做了非常关键的一步。
8、右击“小计”单元格,选择行组——组属性
RDLC报表实现页汇总和总合计
9、分组方式文本框内的值置为=Int((RowNumber(Nothing)-1)/25)
RDLC报表实现页汇总和总合计
10、设置好后预览一下看下效果
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
基本实现了我们想要的效果,但是换页时表头并不是每页固定,我们选择行组的高级模式进行设置让他换页时表头固定显示,点击行组中第一个静态行组,选中它按F4调出属性,将它的KeepWithGroup属性设为After,RepeatOnNewPage属性设置为true其他静态行组的属性不用设置了。
RDLC报表实现页汇总和总合计
设置好后运行报表预览一下
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
RDLC报表实现页汇总和总合计
这样就实现了我们按页汇总的效果了,我每页展示的数据行为25行,也可以设置为其他行数,这是分组表达式=Int((RowNumber(Nothing)-1)/行数)