BAP 使用DYNP_VALUES_READ来获取屏幕字段值
有的時候我們在程序中需要使用到屏幕字段的某些值,比如說一個search help的取數邏輯中要使用到已經輸入的其他輸入框中的值,但是結果往往不如人意,我們可能捕捉不到其他字段的值,從而無法得到我們想要的結果,那么這種情況下,我們應該使用 DYNP_VALUES_READ 方法,立即獲取屏幕字段的值。
如下是使用的例子:
DATA: lt_dynpread TYPE STANDARD TABLE OF dynpread .
??DATA: lw_dynpread TYPE dynpread .
?? lw_dynpread-fieldname = 'SO_CNTR-LOW'.
??APPEND lw_dynpread TO lt_dynpread .
??CALL FUNCTION 'DYNP_VALUES_READ'
????EXPORTING
?????? dyname??????????????? = sy-repid
?????? dynumb??????????????? = sy-dynnr
????TABLES
?????? dynpfields??????????? = lt_dynpread
????EXCEPTIONS
?????? invalid_abapworkarea = 1
?????? invalid_dynprofield?? = 2
?????? invalid_dynproname??? = 3
?????? invalid_dynpronummer = 4
?????? invalid_request?????? = 5
?????? no_fielddescription?? = 6
?????? invalid_parameter???? = 7
?????? undefind_error??????? = 8
?????? double_conversion???? = 9
?????? stepl_not_found?????? = 10
??????OTHERS??????????????? = 11.
??IF sy-subrc <> 0.
????MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
????????????WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
??ENDIF.
??CLEAR lw_dynpread .
??LOOP AT lt_dynpread INTO lw_dynpread .
????IF lw_dynpread-fieldname EQ 'SO_CNTR-LOW'.
??????IF lw_dynpread-fieldvalue NE space OR
????????? lw_dynpread-fieldvalue IS NOT INITIAL.
????????? so_cntr-low = lw_dynpread-fieldvalue .
????????? so_cntr-sign = 'I'.
????????? so_cntr-option = 'EQ'.
????????APPEND so_cntr.
??????ENDIF.
????ENDIF.
??ENDLOOP.
總結
以上是生活随笔為你收集整理的BAP 使用DYNP_VALUES_READ来获取屏幕字段值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sap权限相关设置、控制及传输
- 下一篇: 全球最难翻译的十大单词