目录:
1. 概述编辑
1.1 版本
Finereport 版本 |
---|
11.0 |
1.2 应用场景
本文介绍制作模板时,参数控件和填报控件实际值和显示值相关的常见问题及解决方案。
2. 常见问题及解决方案编辑
2.1 分页预览没有实际值和显示值之分
问题描述:
公式形态:if(B2 = min(B2[;!0]), "★" + round($$$, 1), round($$$, 1)),分页预览最后显示的样子为多列出现带★数字,和最小值才为带★情况不符合,其他预览正常。
原因分析:
分页预览时,计算逻辑如下:
首先在语文列判断89是不是89、25、62中的最小值,结果是false,显示原值;
然后在数学列判断25是不是89、25、62中的最小值,结果是true,是显示为★25,
最后在英语列判断62是不是89、★25、62中的最小值,结果是true,显示为★62,因为此时的数学是★25,已经成为了字符串
解决方案:
辅助列 C2 设置 C2 为min(B2[;!0])处理,然后公式形态修改为:if(B2 = C2, "★" + round($$$, 1), round($$$, 1))。
2.2 单元格下拉复选框默认值匹配显示值
问题描述:
填报报表中单元格绑定下拉复选框控件,单元格默认值为多个数值组成的字符串,预览时需要显示单个数值对应的显示值,如果没有进行任何操作显示如下图所示:
解决方案:
1)方法一:设置「模板web属性>填报预览>直接显示控件」,保存后进行填报预览,如下图所示:
2)方法二:如果想不显示控件,可以为单元格添加「形态>数据字典」,设置实际值为「产品ID」,显示值为「产品名称」,然后在 B2 输入公式:split(A2,","),在B3输入公式=split(A3,","),B2 和 B3 设置为不扩展。因为 A2 和 A3 的值都是字符串格式,而下拉复选框控件的返回值是数组格式,需要使用 split 函数将字符串转换为字符串数组。如下图所示:
注:因为是填报报表,填报到数据库中的是实际值而不是显示值。当使用上述方法一和方法二进行填报时,为防止同一单元格的数据被填报到多行,设置填报属性的时候需要使用joinarray函数将B3转化为为字符串格式,或者将下拉复选框的返回值类型改为字符串。
2.3 单元格下拉树实际值和显示值转化失效
问题描述:
单元格下拉树设置了默认值,同时设置了形态-数据字典,但默认值并没有按照设置正常转化为显示值,在预览时仍然显示为了实际值。
解决方案:
可参考 单元格下拉树实际值和显示值转化失效 。
2.4 下拉框联动时切换控件选择后会显示实际值
问题描述:
如果数据字典是经过单元格联动后的数据集,在切换控件选择后会显示实际值,而非显示值。
解决方案:
可参考 单元格控件填报后保留显示值 。