1. 概述
1.1 应用场景
希望单元格的内容可以根据不同的条件,显示成不同的值,例如:
商品不打折,折扣字段显示为“-”;商品打折,则显示成数字加文本的形式。
或将原本没有数据的单元格显示为 0 ,如下图所示:
1.2 实现思路
设置「新值」类型的条件属性,可以根据条件改变单元格的显示值
2. 示例一
2.1 准备数据
新建空白的普通报表,新建内置数据集,表设计如下图所示,并将数据集重命名为 ds1 。
2.2 设计表格
如下图设计表格,将数据集字段拖到对应单元格中:
2.3 设置条件属性
1)首先实现:商品不打折,折扣字段显示为“-”
选中 D2 单元格,添加一个「新值」类型的条件属性,新值设置为字符串-,条件为单元格的值等于1,如下图所示:
2)再实现:商品打折,则显示成数字加文本的形式
选中 D2 单元格,再添加一个「新值」类型的条件属性,新值设置为公式10*D2+"折",条件为单元格的值不等于1,如下图所示:
2.4 效果预览
2.4.1 PC 端
保存报表,分页预览后效果如 1.1 应用场景中所示。
2.4.2 移动端
App 和 HTML5 端预览效果相同,如下图所示:
3. 示例二
3.1 准备数据
新建空白的普通报表,新建内置数据集,表设计如下图所示,并将数据集重命名为 ds1 。
3.2 设计表格
与 2.2 节相同,如下图所示:
3.3 设置条件属性
选择 D2 单元格,添加一个「新值」类型的条件属性,新值设置为0,公式为 len($$$)=0,将值为空的单元格显示为 0 ,如下图所示:
2.4 效果预览
2.4.1 PC 端
保存报表,分页预览后效果如 1.1 应用场景中所示。
2.4.2 移动端
App 和 HTML5 端预览效果相同,如下图所示:
4. 模板下载
1)示例一
已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\根据条件修改单元格的值.cpt
点击下载模板:根据条件修改单元格的值.cpt
2)示例二:
已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\根据条件修改单元格的值-示例二.cpt
点击下载模板:根据条件修改单元格的值-示例二.cpt
5. 应用拓展
5.1 获取其他单元格的新值
如果想要获取设置了新值单元格的显示值,不要直接在单元格里写公式,这样获取的还是原来的实际值。
这是由于公式计算是在模板加载之前,而新值生效是在模板加载之后,所以单元格里设置公式获取的还是实际值。
如果想要获取显示值,就必须设置新值条件属性去获取,方法如下:
最终效果如下图所示:
5.2 新值对其他条件属性的影响
当单元格有公式时,先进行公式计算,再判定条件属性「新值」
同一格子的条件属性,新值不影响条件属性的判断
同一行的条件属性,左边格子的「新值」会加入右边格子的条件属性计算
同一列的条件属性,上方格子的「新值」会加入下方格子的条件属性计算
注:「填报报表」中暂不支持「填报控件」与「条件属性新值」同时使用,会导致新值无效。