以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

 
沒有留言:
張貼留言