2012年6月5日 星期二

TIPTOP程式開發--擷取Construct特定欄位值

我們都知道在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

沒有留言: