反馈已提交

网络繁忙

单元格下拉树返回显示值

  • 文档创建者:lu123
  • 历史版本:15
  • 最近更新:Catqiu 于 2022-11-21
  • 1.概述

    1.1 问题描述

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

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

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

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

    1.2 原因分析

    下拉树的返回值是一个数组,但如果返回了完整路径,则形态在转化实际值为显示值时,会将每个节点的完整路径视为一个字符串整体去匹配数据,所以就无法匹配到相应的显示值了。

    1.3 解决思路

    单元格形态>数据字典设置实际值和显示值的对应关系,这样可以实现失焦后最终显示成显示值。在填报属性中用 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 一一对应的部门名称。

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

    2.5 效果预览

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

    1.gif

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

    3. 模板下载

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

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

    附件列表


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

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

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

    不再提示

    10s后关闭

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