反馈已提交

网络繁忙

下拉复选框多值提交

  • 文档创建者:星踪
  • 编辑次数:4次
  • 最近更新:Leo.Tsai 于 2022-08-19
  • 1. 概述

    1.1 问题描述

    填报模板中有一个下拉复选框,设置了实际值和显示值,希望将选中数据拆开作为不同的数据提交入库,且需要将其显示值也提交入库。如下图所示:

    1.2 解决思路

    要拆成多条数据入库的话,下拉复选框的返回值需要选择数组格式。

    此时如果在提交属性里用value或者maparray等函数去获取显示值的话,就会出现两个数组,导致笛卡尔积。所以该需求需要用一种比较巧妙的方法实现。

    利用range函数做一个固定的表格,用公式来将选择数据的实际值和显示值一一匹配,这样在提交的时候就有对应关系了。

    2. 示例

    2.1 设计模板

    新建数据集ds1,sql语句为SELECT * FROM S产品 limit 5

    在B2单元格设置下拉复选框控件返回值类型设置为数组,数据字典为ds1,实际值为产品ID,显示值为产品名称

    2.2 设置公式

    在A4,B4和C4单元格设置公式来构建一个提交用的表格。

    A4:range(1,max(value("ds1","产品ID")))

    B4:INDEXOFARRAY(B2,A4)

    C4:value("ds1","产品名称","产品ID",B4)

    公式说明如下:

    A4:获取下拉复选框选项的最大个数来构建出表格的序号

    B4:根据序号依次获取下拉复选框所选的产品ID,使其扩展显示

    C4:根据B4的产品ID,获取对应的产品名称

    2.3 设置填报属性

    如图设置填报属性:

    有两处需要注意下:

    1)产品ID字段需要设置为主键,否则只设置id字段的话,按照提交逻辑相同id的数据会视为更新提交,最后入库的数据只有一条。

    2)需要设置提交条件为len(B4)!=0,目的是去除掉构建的表格中为空的数据。

    2.4 效果预览

    使用填报预览,效果如下:

    1.gif

    注1:多选内容并不是一定要是数字类型,只要有能区分数据唯一的字段就行,类似于文档中的产品ID。

    注2:方案支持移动端。

    3. 模板下载

    点击下载模板:下拉复选框数组提交.cpt


    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭