通過此貼,可以了解到:
1、如何獲取選擇屏幕中指定欄位的值;
2、F4 help;
解決在輸入company code後,不敲回車,帶不出PO No.的F4 Help問題
代碼示例:
- REPORT zrab_zyb_test MESSAGE-ID sabapdocu.
- TABLES: ekko.
- DATA: lt_field LIKE dynpread OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_bukrs LIKE ekko-bukrs.SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low. PERFORM f4_help_ebeln USING p_bukrs 'P_BUKRS'.START-OF-SELECTION. WRITE:/ p_bukrs, s_ebeln-low.*&---------------------------------------------------------------------**& Form f4_help_ebeln*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f4_help_ebeln USING iv_field CHANGING cv_field. DATA: BEGIN OF lt_value OCCURS 0, bukrs LIKE ekko-bukrs, ebeln LIKE ekko-ebeln, END OF lt_value. DATA: lt_fields LIKE dynpread OCCURS 0 WITH HEADER LINE.*** 設置要抓取screen的欄位名 *** lt_fields-fieldname = 'P_BUKRS'. APPEND lt_fields.*** 通過此FM,取得上面指定的欄位值 *** CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING dyname = sy-repid dynumb = sy-dynnr TABLES dynpfields = lt_fields 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. READ TABLE lt_fields INDEX 1. IF sy-subrc <> 0. EXIT. ELSE. p_bukrs = lt_fields-fieldvalue. ENDIF.*** 抓取數據庫中符合條件的值 *** SELECT bukrs ebeln INTO CORRESPONDING FIELDS OF TABLE lt_value FROM ekko WHERE bukrs = p_bukrs. IF sy-subrc <> 0. EXIT. ENDIF.*** F4 help *** CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'EBELN' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = cv_field value_org = 'S' TABLES value_tab = lt_value EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. IF sy-subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.ENDFORM. " f4_help_ebeln
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21122155/viewspace-578424/
,如需转载,请注明出处,否则将追究法律责任。