Wyn BI-条件格式化-以分组为单位设置交替背景色

(一)背景介绍
在之前的文章中,我们介绍表格交替行背景色的实现方法,然而在报表设计过程中,我们也会遇到非固定行数间隔的交替行设置需要。比如:以一笔订单为单位,进行背景色的交替显示,如下图所示:

左侧是表格的默认行为,以1行进行交替背景色显示。
右侧是以订单编号为单位,进行背景色的交替显示。

(二)相关资源
你可以直接下载以下zip包,并在Wyn 系统管理网站的导入功能中,导入相关的报表、数据源等资源。

 报表-条件格式化-按照分组设置交替行颜色.zip (494.28 KB, 下载次数: 0)


(三)实现方法
实现思路,还是在报表中,通过表格来显示订单详细数据,同时,将背景色的表达式进行适当修改。
第1步:新建RDL报表,添加表格组件
新创建一个RDL报表,从设计器左侧添加表格组件到报表设计界面。
同时,在设计器最右侧【数据绑定】中添加内置数据集【销售明细_报表】,然后在表格的明细行单元格分别绑定【订单编号】、【产品名称】、【购买数量】三个字段。



第2步:预览报表设计效果
我们在预览的时候会发现,表格默认具备交替行背景色的能力,但是,同一个订单的不同产品,并没有显示为同一个颜色,这样无法很直观的表达同一个订单购买的所有产品。


第3步:理解交替行背景色实现原理
表格中,实现交替行的核心思路就是,为行的背景色设置一个表达式,动态决定当前行应该显示什么颜色。
而表格默认就有交替行颜色,也是因为我们选择了表格样式【主题色1-交替行颜色】,
选择这个样式之后,会给表格明细行所有单元格的背景色属性设置一个表达式。

你可以点击下图中【1】的明细行图标,然后在属性窗格中切换到【文本框】选项卡,你可以看到【颜色】属性是一个表达式:

=IIF(RowNumber(Nothing) Mod 2, Theme.Colors(1,4), "Transparent")




这个表达式的含义就是,根据当前行的行号是奇数还是偶数(RowNumber(Nothing) Mod 2),从而决定返回什么颜色。
在理解交替行实现的核心原理之后,我们就可以动手实现基于订单编号的组交替色了。

第4步:实现基于订单的交替背景色
我们需要做的就是计算当前订单的显示次序是奇数,还是偶数。而得到订单显示次序的表达式为:

RunningValue(Fields!订单编号.Value, CountDistinct)


从而,我们修改明细行单元格背景色的表达式写法,如下:

=IIF(RunningValue(Fields!订单编号.Value, CountDistinct) Mod 2, Theme.Colors(1,4), "Transparent")



第5步:预览验证实现效果
点击预览报表按钮,得到以下预览效果,也是我们所期望的。


第6步:合并订单编号单元格
为了让同一个订单的数据看起来更加直观,我们将订单编号相同的单元进行合并。
点击明细行中【订单编号】单元格,在属性窗格中找到【自动合并】属性,并将其设置为【分组内合并】。
点击预览,得到文章最开始实现的报表效果,如下图:



(四)重要提示
这篇文章中有几个功能需要注意:
1、交替行,核心是为单元格的背景色设置为一个表达式,具体返回的颜色是动态计算出来的。
2、RunningValue 函数的使用,具体请参考帮助文档:https://help.grapecity.com.cn/pa ... ion?pageId=37880373

最后,如果你也有类似的使用需求,欢迎留言交流。  

原文地址:https://www.cnblogs.com/edoo/p/13819668.html