我們都知道在TIPTOP中可以有兩種資料輸入控制模式,一種是在查詢狀態下輸入值(CONSTRUCT),另一種是在新增或修改狀態下輸入值(INPUT/INPUT ARRAY)。
以INPUT或INPUT ARRAY的模式下,一個欄位是以一個變數做為儲存的依據,但是CONSTRUCT的模式則不然。
CONSTRUCT最大的優點是在於輸入完畢後,可將所輸入的值,與該欄位組合成為SQL字串,例如下圖中在訂單欄位(oea01)輸入「002-07060003」做為查詢條件,在程式中會存在tm.wc字串中「oea01='002-07060003'」。
但有時候,我們也需要擷取這些在CONSTRUCT模式的欄位裡輸入的值,進行一些判斷處理,這時候照下面紅色標示的語法,就可以順利取得我們想要的值。
方式一:
CONSTRUCT BY NAME tm.wc ON oea01
ON ACTION locale
#CALL cl_dynamic_locale()
LET g_action_choice = "locale"
EXIT CONSTRUCT
AFTER FIELD oea01
LET l_oea01 = GET_FLDBUF(oea01)
ON IDLE g_idle_seconds
CALL cl_on_idle()
CONTINUE CONSTRUCT
ON ACTION exit
LET INT_FLAG = 1
EXIT CONSTRUCT
END CONSTRUCT
方式二:
CONSTRUCT BY NAME tm.wc ON oea01
ON ACTION locale
#CALL cl_dynamic_locale()
LET g_action_choice = "locale"
EXIT CONSTRUCT
AFTER FIELD oea01
CALL FGL_DIALOG_GETBUFFER() RETURNING l_oea01
ON IDLE g_idle_seconds
CALL cl_on_idle()
CONTINUE CONSTRUCT
ON ACTION exit
LET INT_FLAG = 1
EXIT CONSTRUCT
END CONSTRUCT