反馈已提交

网络繁忙

复选控件多值入库不正确

  • 文档创建者:yiyemeiying
  • 历史版本:13
  • 最近更新:Catqiu 于 2023-05-25
  • 1. 概述

    1.1 问题描述

    在制作填报模板时,经常遇到单元格控件勾选了多个指标,出现以下两种情况:

    1)当填报时存在主键时,即做修改操作,提交成功后却只保留了一个值。

    举例:

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

    222

    2)当填报时不存在主键时,即做添加操作,提交成功后数据库则会录入多条数据。

    举例:

    使用「产品」表添加一条测试数据进行填报,供应商选择了 3 个指标后提交入库后,发现「产品」表中新增了 3 条数据。

    222

    而我们希望「下拉复选框控件」多选值提交后,能在一条数据中正确显示多个值,该如何处理呢?

    1.2 解决思路

    「下拉复选框控件」的返回值类型默认为「数组」,上述两种情况返回值类型需要为「字符串」,所以导致填报结果不正确。

    处理方法:将「下拉复选框控件」的返回值类型由「数组」改为「字符串」即可。

    注:修改操作和添加操作的解决思路一致。

    2. 示例

    2.1 准备模板

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

    1607049669979471.png

    2.2 设置下拉复选框控件

    将 D3 单元格控件修改为「下拉复选框控件」,返回值类型为「字符串」,其他默认。步骤如下图所示:

    Snag_32ac5413.png

    2.3 设置数据字典

    给 D3 单元格设置「数据字典」,类型设置为「数据库表」,数据库选择「FRDemo」,数据库表选择「供应商」,实际值为「供应商ID」,显示值为「公司名称」。步骤如下图所示:

    1607050171104613.png

    2.4 设置公式形态

    选中 D3 单元格,设置「单元格属性>形态>公式形态」,定义公式形态:sql("FRDemo", "select DISTINCT 公司名称 from 供应商 where 供应商ID in ('" + $$$ + ")", 1,null)

    步骤如下图所示:

    2023-05-25_15-30-38.png

    注:公式 sql("FRDemo", "select DISTINCT 显示值字段 from 表名 where 实际值字段 in (" + $$$ + ")", 1,null)  使得鼠标离开单元格时,单元格内容能展示显示值而不是实际值。

    2.5 修改字段类型

    设计器内置数据库表「产品」中「供应商ID」字段类型为 integer,需要先将其修改为 text 类型,才可以存储字符串类型的值。否则提交入库时会提示报错:数据列类型不匹配。

    1607052427902703.png

    2.6 效果预览

    1)PC端

    保存报表,点击「填报预览」,效果如下图所示:

    1607053284305948.gif

    2)移动端

    保存报表,点击「移动端预览」,点击「填报」,App 端和 H5 端均支持,效果如下图所示:

    989A657B-A690-475B-9E73-88553C61ECD4.GIF

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

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\下拉复选框多选值进行填报时出现的问题及解决方案.cpt

    点击下载模板:下拉复选框多选值进行填报时出现的问题及解决方案.cpt


    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持