帆软报表-显示值和实际值(个人记录)
但是,至少在帆软9.0版本中,不知道什么原因,为'无'的数据居然满足条件属性中'>-30'这个条件,然后给我'标红'了,感觉可能是因为-30和无数据类型无法匹配导致的?注意: 这里的'显示为'无',并且'不标红'' 是后面的条件,之前的9个条件属性语句已经存在并且各自之间是or的关系,我原本还想的再加一个条件属性来控制,看来是不行的。当遇到B单元格数据值为null的时候,显示为'无',并且'不标红
使用场景:
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要在实际页面中显示为'无'
那么这时候就可以用到数据字典

成功实现!
更多推荐


所有评论(0)