历史版本5 :复选控件多值入库不正确 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1.问题描述编辑
在制作填报模板时,经常遇到单元格控件勾选了多个指标。
a.当填报时存在主键时,说明是修改操作,提交成功后却只保留了一个值;
b.当填报时不存在主键时,说明是添加操作,提交成功后数据库则会录入多条数据。
如果出现这些情况,我们该如何处理呢?
举例数据:
填报时存在主键的情况(修改操作):
我们在下拉复选框控件勾选了【佳佳乐、康富食品、秒生、为全】,4 个指标后提交入库,刷新页面后,发现只保留了一个最后勾选的指标【为全】的值。
填报时不存在主键的情况(添加操作):
而需要实现的效果如下:
2. 解决方法编辑
原因:下拉复选框的默认返回类型是【数组】,所以导致填报只保留了最后一个值。
处理方法:我们选择将返回值类型由【数组】改选为【字符串】
注:不管填报时,是修改操作还是添加操作,解决方案都一样。
3. 示例编辑
打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt
在 D3 单元格设置【下拉复选框】控件,返回值类型:字符串,其它默认。
设置数据字典:
选择单元格属性->形态->公式形态,定义公式形态:sql("FRDemo", "select DISTINCT 显示值字段 from 表名 where 实际值字段 in (" + $$$ + ")", 1,null),如下:
注:添加公式形态是为了鼠标离开单元格时,单元格内容能展示显示值而不是实际值。
注:该示例需要将数据库中供应商字段的类型改为能存储字符串的类型,如:char、varchar 等等,这样才能实现效果!
4.效果预览编辑
保存设置并填报预览,效果如上图所示。
注:下拉复选框、单选按钮、复选框组等多选控件都有类似的问题,参考本文档处理!