22. 条件样式
报表展现时候,经常遇到用通过特殊的数据,或者设定一个条件,当条件满足时报表呈现不同的背景色或字体色,来标识特殊意义,UniEAP Report对此功能进行了很好的实现,通过公式的组合使用,这里通过动态字体色和背景色来举例,也可以通过使用隔行换色来提升报表样式的美观度,下面对字体色和背景色的常用情形做详细介绍。
22.1 动态字体色
动态字体色通常用来标识不足或超出标准的数据。
以报表样例库典型报表中的纵向扩展数据列表为例,报表定义如下图所示:
对字体色进行动态控制是在单元格公式属性中的前景色进行控制的,在此应用下,需要对金额高于500的字体颜色显示为蓝色,低于100的显示为红色,前景色公式定义如下图所示:
在公式=case(e7<100,rgb(255,0,0),e7>500,rgb(0,0,255),rgb(0,0,0))内,使用了CellRef、Case公式和RGB公式。Case公式和Decode公式对处理分情形需求有很好的支持,它们的详细用法请可以参阅《UniEAP Report公式查询手册》。100,rgb(255,0,0),e7>
在Web端查看,报表展现如下图所示:
可以看到部分订单的颜色按照要求进行了处理。
22.2 动态背景色
动态背景色通常用于标识有特殊意义的整个记录,也用于使报表展现摆脱单调而进行隔行换色来提升美观度。
报表样例库典型报表中的纵向扩展数据列表对动态背景色做了很典型的应用,其报表定义如下图所示:
若要使整行的每一个单元格都按照某一规则动态着色,需要对每个单元格进行相同背景色公式定义。在此例中需要在报表中的第7行每一个单元格公式属性的背景色均进行了公式定义,如下图:
其公式=case(mod(offset('a7'),2)=0,rgb(231,239,247),rgb(255,255,255))使用了case公式、mod公式、offset公式、CellRef公式和RGB公式,mod(value,n)返回value除以n的余数,offset(mastercell)是相对目标单元格的位移公式,它们的详细用法可以参看《公式查询手册》。
还有一个AlterColor(oddColor,evenColor)公式,按奇偶行设置不同的颜色值,当只是需要两种不同颜色时,可以直接使用这个公式。
补充说明:AlterColor公式实际上可以按奇偶行设置任意值,支持多种类型的参数,只不过设置交替颜色是最典型的应用场景。
在Web端查看,报表展现效果如下图所示:
可以看到在报表展现中,奇数行均为白色,偶数行均为淡蓝色,提升了报表的美观度。