1. 概述
1.1 问题描述
在决策报表中,设置一个参数,使用一个控件作为参数输入值,在其他控件、报表块、图表块中使用 value 函数 获取参数值,当输入的参数值改变时,获取值不会随之改变,即无联动效果。示例如下:
1)新建决策报表,新建数据库查询,SQL 语句为:select ${para1} as para1,para1 为数据集参数,默认值为 1 。如下图所示:
2)设计决策报表样式
在决策报表 body 中添加两个「标签控件」,控件值分别为「para1」、「para2」。
添加两个「文本控件」对应「para1」、「para2」,para1 为数据集参数,作为输入值;para2 输入公式:value('ds1',1)+1,返回获取的 para1 值加 1 后的值。
添加一个「报表块」,在单元格中插入公式:value('ds1',1) 。
决策报表样式如下图所示:
3)保存报表,点击「PC端预览」,效果如下图所示:
1.2 原因分析
value 函数在决策报表 body 中直接使用于控件、报表块和图表块之间时,不会触发联动效果。
2. 解决方案
方案一:可以通过给 body 添加参数界面,在参数页面添加控件作为输入值,输入不同值后点击查询,各获取值会随之改变。
方案二:使用公式 $para1 取值可触发联动。
3. 示例:方案一
3.1 添加参数界面
添加参数界面,将 para1 添加到参数界面(新建参数界面并将para1,拖入面板即可),para2 及报表块中取值公式不变,如下图所示:
3.2 效果预览
3.2.1 PC 端
保存报表,点击「PC端预览」,效果如下图所示:
3.2.2 移动端
App 与 HTML5 端效果相同,如下图所示:
4. 示例:方案二
4.1 添加公式
直接使用公式 $para1 取值,或者报表块中使用公式的同时,在任意一个单元格插入公式:$para1,即可触发联动效果。如下图所示:
4.2 设置单元格属性
将报表块中公式 $para1 所在单元格「单元格属性>高级>预览单元格内容」取消勾选,如下图所示:
4.3 效果预览
4.3.1 PC 端
保存报表,点击「PC端预览」,效果如下图所示:
4.3.2 移动端
App 与 HTML5 端效果相同,如下图所示: