历史版本12 :单元格控件填报后保留显示值 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

在使用单元格控件进行填报时,如果控件数据字典设置了实际值和显示值,当控件填写完毕失去焦点后,单元格中最终显示的是实际值。如果想要填写完毕后,保留显示值,该如何操作呢?

1.2 实现思路

当单元格控件填写完毕并失焦后,程序会将控件输入值对应的实际值发送给单元格并展示出来。所以只需要修改控件所在单元格的 形态,为其设置 数据字典,将实际值和显示值和控件数据字典设置保持一致,即可解决上述问题。

2. 示例编辑

以内置数据库 FRDemo 中的「产品」和「订单明细」两张表为例。

2.1 模板设计

分别为单元格 A2,B2,D2 添加文本控件,下拉框控件,文本控件。模板设计如下图所示:

1571068524581436.png

选中 B2 单元格,在右侧属性面板控件设置>高级 中为其设置数据字典,其中实际值为「产品ID」,显示值为「产品名称」。如下图所示:

1571069598782650.png

2.1.3 添加公式

鼠标右键点击 C2 单元格,选择单元格元素>插入公式,其中单价是根据产品 ID 进行 自动匹配 的,公式为:

if(len(B2) = 0, "", sql("FRDemo", "select 单价 from 产品 where 产品ID=" + B2, 1, 1))

2.2 效果预览

保存模板,点击填报预览,效果如下图所示:

1571070674926554.gif

预览发现,填报选择产品时,B2 单元格显示的为显示值,选择完成之后,控件失去焦点,控件文本显示的是实际值。

3. 解决方案编辑

设置 B2 单元格的形态,数据库表为「产品」,设置实际值为「产品 ID」,显示值为「产品名称」。

注:下拉复选框控件返回值类型必须为数组,暂不支持返回值为字符串。

3.1 设置过程

在本文第二章问题示例模板基础上选中 B2单元格,在右侧属性面板中选择单元格属性>形态,为其设置数据字典。如下图所示:

1571071552757237.png

3.2 填报预览

保存模板,点击填报预览,下拉框失去焦点之后,下拉框中显示的还是显示值,而非实际值。如下图所示:

1571071827203918.gif

4. 模板下载编辑

已完成的模板,请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\下拉框填报完成之后显示为显示值.cpt

点击下载模板:下拉框填报完成之后显示为显示值.cpt