背景
搭建流程时,需将明细表1中的合同字段 供明细表2中的合同开窗查询使用。
最终实现如下图:
选择 发票号时,自动带出明细表1中的采购合同号清单,然后在明细表2中开窗采购合同号时,只跳出明细表1中有的采购合同号,避免人为选到其它无关的采购合同号。
问题
问题一:
要想开窗只显示明细表1中的内容,那么就得让开窗查询时,只查询明细表1中的内容, 那么 查询的SQL语句就得是下面这种可格式。
sql
select * from 采购合同清单 where cght in ('R13ITES0141-SD***2781-DG1-1','R13ITES0142-SD***2780-DG1-2')
所以就在 主表上面增加一个临时字段 LSCGHTH 解决,在选择 发票号时,自动将明细表1中的采购合同号按下面这种格式存到LSCGHTH字段中。
R13ITES0141-SD***2781-DG1-1,R13ITES0142-SD***2780-DG1-2
问题二:
在自定义开窗中,通过调用LSCGHTH 字段内容进行数据的筛选,SQL格式如下:
select * from 采购合同清单 where cght in ('$LSCGHTH$')
但发现开窗测试时通不过,如下图一样报错。
想着通不过是正常的,毕竟传过去的字符串不是标准的SQL字符串,但有趣的是,在流程表单中测试居然是正常的,能如下图一样正常开窗显示
难道是BUG?
与厂商确认,自定义开窗时,SQL会自动将
R13ITES0141-SD***2781-DG1-1,R13ITES0142-SD***2780-DG1-2
转换为
R13ITES0141-SD***2781-DG1-1','R13ITES0142-SD***2780-DG1-2
查日志确认,在开窗测试时并不会做转换,所以导致测试通不过。
厂商告知会出包修复。 我的是 9.00.2204.02 版本,不知道其它的版本是否也有这样的问题?