历史版本6 :复选控件多值入库不正确 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1.问题描述编辑

在制作填报模板时,经常遇到单元格控件勾选了多个指标。

  • a.当填报时存在主键时,说明是修改操作,提交成功后却只保留了一个值;

  • b.当填报时不存在主键时,说明是添加操作,提交成功后数据库则会录入多条数据。

如果出现这些情况,我们该如何处理呢?

举例数据:

填报时存在主键的情况(修改操作):

我们在下拉复选框控件勾选了【佳佳乐、康富食品、秒生、为全】,4 个指标后提交入库,刷新页面后,发现只保留了一个最后勾选的指标【为全】的值。

222

填报时不存在主键的情况(添加操作):

222

而需要实现的效果如下:

222

2. 解决方法编辑

原因:下拉复选框的默认返回类型是数组】,所以导致填报只保留了最后一个值。
222

处理方法:我们选择将返回值类型由数组】改选为【字符串

222

注:不管填报时,是修改操作还是添加操作,解决方案都一样。


3. 示例编辑


打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt

222

在 D3 单元格设置【下拉复选框】控件,返回值类型:字符串,其它默认。

222

设置数据字典:
222

选择单元格属性->形态->公式形态,定义公式形态:sql("FRDemo", "select DISTINCT 显示值字段 from 表名 where 实际值字段 in (" + $$$ + ")", 1,null),如下:

222

注:添加公式形态是为了鼠标离开单元格时,单元格内容能展示显示值而不是实际值。

注:该示例需要将数据库中供应商字段的类型改为能存储字符串的类型,如:char、varchar 等等,这样才能实现效果!


4.效果预览编辑

保存设置并填报预览,效果如上图所示。

注:下拉复选框、单选按钮、复选框组等多选控件都有类似的问题,参考本文档处理!


5. 模板下载编辑