最新历史版本 :根据条件修改单元格值 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

希望单元格的内容可以根据不同的条件,显示成不同的值,例如:

商品不打折,折扣字段显示为“-”;商品打折,则显示成数字加文本的形式。

1639720472169625.png

或将原本没有数据的单元格显示为 0 ,如下图所示:

2022-08-29_16-39-16.png

1.2 实现思路

设置「新值」类型的条件属性,可以根据条件改变单元格的显示值

2. 示例一编辑

2.1 准备数据

新建空白的普通报表,新建内置数据集,表设计如下图所示,并将数据集重命名为 ds1 。

1639721271202380.png

2.2 设计表格

如下图设计表格,将数据集字段拖到对应单元格中:

Snag_4315a704.png

2.3 设置条件属性

1)首先实现:商品不打折,折扣字段显示为“-”

选中 D2 单元格,添加一个「新值」类型的条件属性,新值设置为字符串-,条件为单元格的值等于1,如下图所示:

Snag_431869fc.png

2)再实现:商品打折,则显示成数字加文本的形式

选中 D2 单元格,再添加一个「新值」类型的条件属性,新值设置为公式10*D2+"折",条件为单元格的值不等于1,如下图所示:

Snag_431c0a93.png

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 ,如下图所示:

2022-08-29_16-39-16.png

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 获取其他单元格的新值

如果想要获取设置了新值单元格的显示值,不要直接在单元格里写公式,这样获取的还是原来的实际值。

这是由于公式计算是在模板加载之前,而新值生效是在模板加载之后,所以单元格里设置公式获取的还是实际值。

Snag_4335020e.png

如果想要获取显示值,就必须设置新值条件属性去获取,方法如下:

Snag_4337cfd4.png

最终效果如下图所示:

Snag_4339b221.png

5.2 新值对其他条件属性的影响

当单元格有公式时,先进行公式计算,再判定条件属性「新值」

  • 同一格子的条件属性,新值不影响条件属性的判断

  • 同一行的条件属性,左边格子的「新值」会加入右边格子的条件属性计算

  • 同一列的条件属性,上方格子的「新值」会加入下方格子的条件属性计算

注:「填报报表」中暂不支持「填报控件」与「条件属性新值」同时使用,会导致新值无效。