1. 程式人生 > >ABAP POH和POV事件中 獲得屏幕字段的值

ABAP POH和POV事件中 獲得屏幕字段的值

幫助 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 WITH
HEADER 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 = dynpfields
EXCEPTIONS OTHERS = 9. IF sy-subrc = 0. READ TABLE dynpfields WITH KEY fieldname = NAME1. name1 = dynpfields-fieldvalue. "備註 ENDIF.

ABAP POH和POV事件中 獲得屏幕字段的值