zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    [CF845G]Shortest Path Problem?
    [洛谷P4149][IOI2011]Race
    [洛谷P4178]Tree
    [AtCoder AGC27A]Candy Distribution Again
    [洛谷P3806]【模板】点分治1
    [洛谷P2634][国家集训队]聪聪可可
    [CF280C]Game on Tree
    [洛谷P3338][ZJOI2014]力
    [CF438D]The Child and Sequence
    [CF609E]Minimum spanning tree for each edge
  • 原文地址:https://www.cnblogs.com/edoo/p/13819668.html
Copyright © 2011-2022 走看看