反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

单元格下拉树返回显示值

  • 文档创建者:lu123
  • 历史版本:13
  • 最近更新:Leo.Tsai 于 2022-08-19
  • 1.概述

    1.1 问题描述

    单元格里添加的 下拉树控件 ,数据字典设置了实际值和显示值,选择时显示的是显示值,在失焦后单元格中显示的会是实际值。

    例如下图用下拉树展示部门结构,选项的实际值为部门 ID,显示值为部门名称,可以看到失焦后,下拉树框里面变为实际值。

    那如何让其失焦后仍然显示为显示值并且可以提交入库呢?

    1A1C972C-156C-4F67-9CD3-F7A4E929829E.GIF

    1.2 解决思路

    单元格形态>数据字典设置实际值和显示值的对应关系,这样可以实现失焦后最终显示成显示值。在填报属性中用 MAPARRAY() 和 VALUE() 函数实现对实际值的转换入库。

    2. 示例 

    2.1 准备数据

    1)新建一张普通报表,添加数据集 ds1,SQL 语句为:SELECT * FROM 公司部门

    2)接着添加树数据集 tree1,选择刚才的 ds1,如下图设置:

    2.2 添加下拉树

    在 A1 单元格添加一个下拉树控件,数据字典构建方式选择 自动构建,实际值为部门 ID,显示值为部门名称。设置成多选和不返回完整路径。如下图所示:

    2.3 单元格形态设置

    选中 A1 单元格,在「单元格属性>形态」选择数据字典,绑定 ds1 数据集,实际值为部门ID,显示值为部门名称。

    2.4 填报属性设置

    如上设置后失焦显示的已经是显示值了,但此时提交入库绑定单元格获取的值,仍然是实际值。此处可以利用公式来处理:maparray(A1,value("ds1","部门名称","部门ID",item)),其中 maparray 函数用来新建数组,通过 Value函数 在新数组中列出和 A1 单元格中部门ID 一一对应的部门名称。

    如果需要对结果进行拼接,以字符串的形式存储到数据库,可以在公式中加一个字符串拼接函数 JOINARRYJOINARRAY(maparray(A1,value('ds1','部门名称','部门ID',item)),',')

    2.5 效果预览

    PC 端预览效果如下图所示:

    1.gif

    注:该方案也支持移动端预览。

    3. 模板下载

    已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\单元格下拉树返回显示值.cpt

    点击下载模板:单元格下拉树返回显示值.cpt

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

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

    总裁办24H投诉

    热线电话:173-1278-1526