tomjay1234 发表于 2024-6-18 21:11:16

【10.0.3】EL下拉选择器,如何实现下拉选项数据,过滤掉本表相应字段已存在选项

本帖最后由 tomjay1234 于 2024-6-18 21:46 编辑

使用场景:
A数据表中有主键编号字段,存储有5条数据:1001、1002、1003、1004、1005

B表中使用EL下拉选择器,引用A表编号字段数据,形成5条下拉选项1001、1002、1003、1004、1005

实际业务中,A表与B表数据关系为一一对应,编号1001、1002、1003、1004、1005一一对应,数据行数必然是一致的。

当前优化需求,因随着A表数据量增多,B表的EL下拉选择器列出选项过多,难以分清哪一项有效,已经影响操作。

想要实现:
当在B表中使用EL下拉选择器时,不要将A表编号字段数据全部列出,实现过滤效果:如果B表已经填写过编号1001、1002的数据,那么在下拉选择中不再显示已经填写过编号1001、1002这两条数据,仅显示没有填写过的1003、1004、1005这三条数据。

考虑过采用新建数据库视图,用SQL语句SELECT 编号 FROM 表A,WHERE 编号 NOT IN 表B,但是视图不能存储数据,导致表中其他需要表A中的数据根据编号来赋值的字段在修改表单的时候加载不出绑定数据。

请教大佬们是否有其他方式实现以上需求

Syl 发表于 2024-6-18 21:11:17


视图就很合适,视图是实时的。你说‘导致表中其他需要表A中的数据根据编号来赋值的字段在修改表单的时候加载不出绑定数据’是什么场景?
意思是有时候还需要已经用过的A中的编号?


刚看到dmeo我试试

Joe.xu 发表于 2024-6-19 09:04:33

楼主是B表中只会引用一次A表的数据,还是B表中每一类只会引用一遍呢,
可以参考一下这个帖子,过滤掉已经选择的试试
下拉框选择后的数据,不再显示
https://gcdn.grapecity.com.cn/showtopic-155413-1-1.html
(出处: 葡萄城开发者社区)


tomjay1234 发表于 2024-6-19 15:15:47

Joe.xu 发表于 2024-6-19 09:04
楼主是B表中只会引用一次A表的数据,还是B表中每一类只会引用一遍呢,
可以参考一下这个帖子,过滤掉已经 ...

这个的话是先把数据拉到前端,然后公式判断,会不会影响性能

tomjay1234 发表于 2024-6-19 15:19:42

Syl 发表于 2024-6-18 21:48
视图就很合适,视图是实时的。你说‘导致表中其他需要表A中的数据根据编号来赋值的字段在修改表单的时候 ...

过滤是永久性的,没有其他场景,可能是我思路有问题,既然视图不存数据,就不太应该关联视图的数据,仅仅把视图用来做下拉,其他的数据从其他数据表引用过来应该就不会再存在加载不出绑定数据了

Syl 发表于 2024-6-19 17:05:34

tomjay1234 发表于 2024-6-19 15:19
过滤是永久性的,没有其他场景,可能是我思路有问题,既然视图不存数据,就不太应该关联视图的数据,仅仅 ...

视图就是提前写好的一个查询罢了,挺实用。用公式会影响性能

Joe.xu 发表于 2024-6-19 17:07:36

tomjay1234 发表于 2024-6-19 15:15
这个的话是先把数据拉到前端,然后公式判断,会不会影响性能

这个要看数据量,如果数据在万级以下,基本没什么影响。
当然帖子中的方式只是参考,其实也可以不用表格,用设置变量命令,然后拼接好放在前端,
方式有很多种~
页: [1]
查看完整版本: 【10.0.3】EL下拉选择器,如何实现下拉选项数据,过滤掉本表相应字段已存在选项