找回密码
 立即注册

QQ登录

只需一步,快速开始

Freya.Li
中级会员   /  发表于:2021-12-9 16:07  /   查看:3420  /  回复:0
本帖最后由 Freya.Li 于 2022-1-6 16:57 编辑

有些同学遇到了如下的场景,拥有一个现有的公共字典表,这里每个枚举值仅靠value无法确定,还需要通过enum_code才能筛选出下拉框的对应的项目
image.png31813353.png

这种情况下第一反应是使用组合框直接绑定value值,并使用项目查询去过滤enum_code等于对应的枚举类型。
不过因为活字格当前组合框的策略是:项目查询只针对点击下拉框的时候生效,所以在回显的时候会不走项目查询的逻辑,会显示默认出现值为存储的value对应的第一条数据。

针对此种情况,首先推荐的解决方案是:
1.组合框的值字段使用一个唯一的值(比如存储字典表中的id)
2.字典表能否进行拆分

如果上述方案均无法实现,这时候可以采用公式字段解决,这里会展示两种场景下的处理
在公共字典表下,建立一个公式字段,由enum_code和value值以下划线拼接,后面在存储到业务表和数据回显,我们都会用到这个公式字段
image.png861596984.png


场景一:列表和详情页处理
实现效果:
列表&详情页.gif859874877.png

表2的数据结构,新增了一个状态公式字段
image.png220912779.png

  • 详情页设置

详情页下拉框绑定的是状态公式字段
image.png736578063.png

组合框选择从数据库生成,同时值字段选择公式字段1,显示字段是name,同时建立项目查询,查询enum_code为我们想要过滤的内容。那么此时存储到数据库中的状态公式字段为[enum_code]_[value]的形式
image.png602857970.png

真正的value值通过函数取出组合框的值以_分隔后右侧的部分
保存的时候我们将真正的value值保存到表2的status的字段中
image.png281911620.png

  • 列表页展示
有多种实现方式,这里我也就直接使用组合框的方式来显示了,隐藏了下拉按钮,并且设置只读
image.png76739195.png

image.png876552123.png

场景二:主子表场景下的处理
实现效果:
主子表.gif265385436.png


主表的处理方式与场景一一致,这里主要介绍子表的处理
给子表中建立对应的操作方式公式字段、比较方式公式字段用来存储组合框的值
image.png641620483.png

页面上子表的组合框也是绑定对应的公式字段,
image.png791564636.png
组合框的值也是来着数据库,值字段是公式字段1,显示字段为name,同样通过项目查询进行组合框的过滤
image.png600743102.png


与场景一一致在表格中通过函数取出真正的value值
image.png10332335.png
真正绑定数据表中操作方式和比较方式的是右边两列
image.png779449462.png


添加或更新按钮点击时,首先循环表格,将真实的value值赋值给绑定数据库操作方式列和比较方式列
image.png338257750.png
之后再进行数据表的保存
image.png956433715.png

工程文件参考附件:
组合框值不唯一处理(列表&主子表).fgcc (505.27 KB, 下载次数: 284)

评分

参与人数 1满意度 +2 收起 理由
小侠米 + 2

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部