Lenka.Guo 发表于 2020-7-23 12:15:08

报表设计常规教程2-如何实现单级分组

本帖最后由 Lenka.Guo 于 2020-7-23 12:21 编辑

表格默认以数据集中记录行的列表形式展示数据。如果您希望数据行按某个分类性质的字段进行分组显示,就需要为表格设置分组。报表模板:





实现步骤:
1. 添加表格控件

1.1 添加 5列


1.2 选中明细行,分组操作->插入分组



此时表格会在明细行上下各添加一行符号为【1的行,分别为 组头行,组尾行。

[*]组头行,常用于显示标题,分组字段值
[*]组尾行,分组的汇总数据。
组头和组尾行,可以根据需要可以再继续添加多行,只需要选中组行,选择添加行,会自动添加当前分组行,如果不需要分组行,可以选中该行,右键单击选择删除。





1.3 在本示例当中组尾会有三行的合计,所以需要添加两行





1.4在本示例中,会有两行组头行用于显示分组主标题和列标题,所以需要插入两行分组行





1.5 在本示例中不需要表格的表头和表尾行,所以将该行可以删除。




1.6 合并组头的第一行,用于显示分组大标题



2. 绑定数据
2.1 先设置表格分组字段,即要根据哪个字段的值进行汇总展示。
选择表格右侧的“表格分组”面板,点击第一项


点击 设置分组条件,选择分组的字段,如果是多个字段分组,可添加项目,设置多个字段。




2.2 拖拽字段到对应文本框


2.2.1 先设置分组大标题,分组大标题为多个字段拼接的表达式,所以需要【数据】-选择表达式属性
=Fields!类别ID.Value.ToString()+"、"+Fields!类别名称.Value+"(包括:"+Fields!类别说明.Value+")"


2.2.2 绑定明细数据
将字段拖拽到表格的明细行,注意不要拖拽到分组行,这样会导致数据只显示一行(重要!!!)。




2.2.3 销售额是需要通过【单价】*【订购量】来计算的,所以在销售额的单元格内设置数据时,需要设置表达式:




2.2.4 输入分组列标题


2.2.5 设置分组的汇总行,汇总行都是需要计算的,所以需要设置表达式:

[*]产品数量: =Count(Fields!产品ID.Value)&" 件"
[*]订购总量: =Sum(Fields!订购量.Value)&" 件"
[*]库存总量:=Sum(Fields!库存量.Value)&" 件"
[*]再订购总量: =Sum(Fields!再订购量.Value)&" 件"
[*]销售总金额(无税):=Sum(Fields!单价.Value* Fields!订购量.Value)
[*]销售总金额(含税):=Sum(Fields!单价.Value* Fields!订购量.Value*1.17)



3 设置样式
3. 1 设置标题行背景色
选中第一行的文本框后,设置 背景选项->颜色 输入色号 #02a274


设置第二行标题的颜色,选中整行后,将属性设置切换为文本框,设置背景色:#a8dcdb



3.2设置明细行的单双行交替色
选中明细行,将属性设置切换为文本框,设置背景色,输入表达式:
=IIF( RowNumber()mod 2,"#FFFFFF","#F1F9F8") 即根据单双行号,返回不同的背景色。




3.3 调整边线

[*]选择要移除掉边线的文本框,将鼠标点击第一行的单元格后,按住左键向下选中
设置 【边框选项】-【线型】-【无】,如果要设置为其他样式,也可以根据需求选择。附:边框可以设置上下左右的四个方位的边线,所以可根据需要点击符号调整









2. 设置行汇总行,只保留上下边线
选中三行后,设置线型及颜色





3.4 设置字体






















LounIN 发表于 2021-5-21 16:08:35

请问我后台数据如何渲染上去呀。我是一个数组下,每个对象里都有一个子数组,就和示例的一样。但是我明白渲染单个的方法,如果是有 2 个及以上,要怎么渲染。我是 C# 。现在用 reportDocument.LocateDataSource += new LocateDataSourceEventHandler(document_LocateDataSource); 这个方法渲染数据。
页: [1]
查看完整版本: 报表设计常规教程2-如何实现单级分组