ABAP POH和POV事件中 獲得屏幕字段的值
阿新 • • 發佈:2017-07-24
幫助 append exceptio 我們 cal ear value 執行 logic 在Screen顯示之前,系統會自動將程序變量值放到屏幕字段中;在PAI事件中,系統會自動將屏幕字段的值更新到相應的程序變量。
在Screen Logic中我們還有POH和POV事件,所以有時需要調用函數DYNP_VALUES_READ來讀取屏幕字段值。
比如屏幕上有兩個字段,NAME1 和 NAME2。當字段NAME2觸發搜索幫助的時候,必須參照用戶在NAME1中的錄入值。由於PAI尚未被執行,屏幕字段NAME1的字符串值尚未更新到程序變量NAME1。
此時我們可以調用DYNP_VALUES_READ來實現。
DATA: dynpfields TYPE TABLE OF dynpread WITHHEADER LINE. CLEAR: dynpfields, dynpfields[]. dynpfields-fieldname = ‘NAME1‘. "填入需要讀值的字段名 APPEND dynpfields. CALL FUNCTION ‘DYNP_VALUES_READ‘ EXPORTING dyname = sy-repid dynumb = sy-dynnr translate_to_upper = ‘X‘ TABLES dynpfields = dynpfieldsEXCEPTIONS OTHERS = 9. IF sy-subrc = 0. READ TABLE dynpfields WITH KEY fieldname = ‘NAME1‘. name1 = dynpfields-fieldvalue. "備註 ENDIF.
ABAP POH和POV事件中 獲得屏幕字段的值