背景
搭建流程時,需將明細表1中的合同字段 供明細表2中的合同開窗查詢使用。
最終實現如下圖:
選擇 發票號時,自動帶出明細表1中的采購合同號清單,然后在明細表2中開窗采購合同號時,只跳出明細表1中有的采購合同號,避免人為選到其它無關的采購合同號。
問題
問題一:
要想開窗只顯示明細表1中的內容,那么就得讓開窗查詢時,只查詢明細表1中的內容, 那么 查詢的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 版本,不知道其它的版本是否也有這樣的問題?