apm69 发表于 2024-3-11 10:35:47

如何实现选择性地通过多个筛选条件实现数据表操作


业务页面如下图:

对6个化验结果设置上限值和下限值,对数据表中对应字段的检验值进行上下限判断,如果在范围内,这填充字段“是否合格”为“合格”,如果有任意一个检验值不在范围内,则判定为“不合格”。该业务通过点击“自动判定”按钮实现。
但是,实际业务中,并非每次检测都全部采用6个标准,需要通过红框中的复选框选定参与本次自动判定的检验项。如果选定复选框,则该项参与本次自动判定,复选框未选定,则不参与。
用SQL语句的表述:
update 表名 set 是否合格= "合格" where SiO>=SiO下限 and SiO <=SiO上限 and ...
然后再对未填充内容的记录直接填充“不合格”即可。
update 表名 set 是否合格= "不合格" where 是否合格= NULL
在传统代码开发中,可以通过一系列if判断对SQL语句的where子句进行字符串拼接来实现此需求。
但是在活字格中,相当于where子句的内容,是以如下形式存在的

这些操作记录条件没法通过判断语句进行自由拼接。
请问各位专家针对此使用场景,有什么解决方案。



Joe.xu 发表于 2024-3-11 10:35:48

楼主可以看下这个帖子,可以支持客户自定义查询,10.0就支持了
活字格10.0新功能解密:七丶支持分用户记录表格列头筛选,排序和自定义查询条件的状态
https://gcdn.grapecity.com.cn/showtopic-202800-1-1.html
(出处: 葡萄城开发者社区)


小兵一号 发表于 2024-3-11 10:45:27

活字格也可以进行sql语句的拼接,也可以用你说的那种if判断来改变where之后的条件:lol

apm69 发表于 2024-3-11 10:46:39

小兵一号 发表于 2024-3-11 10:45
活字格也可以进行sql语句的拼接,也可以用你说的那种if判断来改变where之后的条件

请问具体如何实现呢?

小兵一号 发表于 2024-3-11 10:57:22

apm69 发表于 2024-3-11 10:46
请问具体如何实现呢?

我这边版本低哈,自己做了个,你看看,大概这个意思

apm69 发表于 2024-3-11 11:31:04

本帖最后由 apm69 于 2024-3-11 11:32 编辑

Joe.xu 发表于 2024-3-11 11:18
楼主可以看下这个帖子,可以支持客户自定义查询,10.0就支持了
活字格10.0新功能解密:七丶支持分用户记录 ...
两个问题:
1.现在的工程是9.0.102版本开发的,如何升级到10.0版本(包括服务端)?同时购买的授权有没有影响?
2.如果出于项目稳定性的问题,选择不升级。我刚才尝试用服务端的“执行SQL命令”中,SQL语句使用公式,用一个变量来存储SQL语句,应该也能实现。
但是在日期型字段的判定上一直有问题,能给我写标准样例吗?比如 where 日期 = 2024/01/01。我尝试了个种写法,都得不到想要的结果。




Joe.xu 发表于 2024-3-11 14:09:25



1.现在的工程是9.0.102版本开发的,如何升级到10.0版本(包括服务端)?同时购买的授权有没有影响?升级步骤可以参考

活字格升级版本时,注意事项和步骤
https://gcdn.grapecity.com.cn/showtopic-46738-1-1.html
(出处: 葡萄城开发者社区)

只要您的金牌期在新版本发布日期内,就可以免费给升级,一般初次购买产品会赠送一年的金牌期,接下来一年内发布的都可以免费升级。
如果出于项目稳定性的问题,选择不升级。我刚才尝试用服务端的“执行SQL命令”中,SQL语句使用公式,用一个变量来存储SQL语句,应该也能实现看您重新发了帖子,我们在这里统计处理哈

SQL命令求助,如何以日期型字段作为判断条件?
https://gcdn.grapecity.com.cn/showtopic-203998-1-1.html
(出处: 葡萄城开发者社区)


页: [1]
查看完整版本: 如何实现选择性地通过多个筛选条件实现数据表操作