ABAP:DYNP_VALUES_READ读取屏幕字段值
生活随笔
收集整理的這篇文章主要介紹了
ABAP:DYNP_VALUES_READ读取屏幕字段值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Screen顯示之前,系統會自動將程序變量值放到屏幕字段中;在PAI事件中,系統會自動將屏幕字段的值更新到相應的程序變量。在Screen Logic中我們還有POH和POV事件,所以有時需要調用函數DYNP_VALUES_READ來讀取屏幕字段值。
比如屏幕上有兩個字段,NAME1 和 NAME2。當字段NAME2觸發搜索幫助的時候,必須參照用戶在NAME1中的錄入值。由于PAI尚未被執行,屏幕字段NAME1的字符串值尚未更新到程序變量NAME1。此時我們可以調用DYNP_VALUES_READ來實現。
DYNP_VALUES_READ中首要的接口是DYNPFIELDS,它主要含2個字段,字段名和字段值。由于它讀取的是屏幕字段,所以字段值自然是未經轉換的字符串輸入值。
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.
備注:
如果必要,這里要進行輸入轉換(Input Conversion),將用戶錄入的字符串轉換成SAP的內部變量值。可以調用CONVERSION_EXIT_XXXXX_INPUT此類函數。
比如屏幕上有兩個字段,NAME1 和 NAME2。當字段NAME2觸發搜索幫助的時候,必須參照用戶在NAME1中的錄入值。由于PAI尚未被執行,屏幕字段NAME1的字符串值尚未更新到程序變量NAME1。此時我們可以調用DYNP_VALUES_READ來實現。
DYNP_VALUES_READ中首要的接口是DYNPFIELDS,它主要含2個字段,字段名和字段值。由于它讀取的是屏幕字段,所以字段值自然是未經轉換的字符串輸入值。
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.
備注:
如果必要,這里要進行輸入轉換(Input Conversion),將用戶錄入的字符串轉換成SAP的內部變量值。可以調用CONVERSION_EXIT_XXXXX_INPUT此類函數。
總結
以上是生活随笔為你收集整理的ABAP:DYNP_VALUES_READ读取屏幕字段值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DYNP_VALUES_READ
- 下一篇: ABAP 使用DYNP_VALUES_R