使用场景:

        1.数据字典

        2.sql中不好实现的一些逻辑判断

遇到的情况:

        两个单元格,A单元格受B单元格的实际值来影响自己是否'标红'

        条件可以有多个

需求来了:

                当遇到B单元格数据值为null的时候,显示为'无',并且'不标红'

问题来了:

                在模板数据集的sql语句中,我用了case when then语句去实现

                但是,至少在帆软9.0版本中,不知道什么原因,为'无'的数据居然满足条件属性中'>-30'这个条件,然后给我'标红'了,感觉可能是因为-30和无数据类型无法匹配导致的???

                这显然不是我想要的结果

                注意: 这里的'显示为'无',并且'不标红'' 是后面的条件,之前的9个条件属性语句已经存在并且各自之间是or的关系,我原本还想的再加一个条件属性来控制,看来是不行的

                那么我想解决这个问题的话,大概只能在每个条件属性中都加一个条件: <>'无'

                测试后,发现确实能解决这个问题

                但是这样一来,我就要加9个 而且实际这个报表中可不止这两个单元格有这情况,工作量感觉有点儿大,而且万一用户突然改变需求了改起来也麻烦

               

解决办法:

                可以不在sql语句中通过case when then来实现

                在报表中给单元格加个函数控制 nvl($$$,-9999)  双击单元格设置'自定义显示' 

                随便给个不会满足任何条件的显示值就可以了,这里我给的是-9999

                这时候保存后会发现,之前为null的数据现在显示为-9999

                不满足'>-30'这个条件了 其他条件也不满足 '不再标红了'

                最后一步就是将-9999要在实际页面中显示为'无'

                那么这时候就可以用到数据字典

                成功实现!

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐