ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 標準選擇屏幕F4增強

標準選擇屏幕F4增強

原创 Linux操作系统 作者:lorryhappy 时间:2009-03-22 14:50:52 0 删除 编辑
通過此貼,可以了解到:
1、如何獲取選擇屏幕中指定欄位的值;
2、F4 help;

解決在輸入company code後,不敲回車,帶不出PO No.的F4 Help問題

代碼示例:

  1. REPORT zrab_zyb_test MESSAGE-ID sabapdocu.
  2. TABLES: ekko.
  3. DATA: lt_field LIKE dynpread OCCURS 0 WITH HEADER LINE.   
  4. PARAMETERS: p_bukrs LIKE ekko-bukrs.
  5. SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
  6. AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
  7.   PERFORM f4_help_ebeln USING p_bukrs 'P_BUKRS'.
  8. START-OF-SELECTION.
  9.   WRITE:/ p_bukrs, s_ebeln-low.
  10. *&---------------------------------------------------------------------*
  11. *&      Form  f4_help_ebeln
  12. *&---------------------------------------------------------------------*
  13. *       text
  14. *----------------------------------------------------------------------*
  15. *  -->  p1        text
  16. *  <--  p2        text
  17. *----------------------------------------------------------------------*
  18. FORM f4_help_ebeln USING iv_field
  19.                 CHANGING cv_field.
  20.   DATA: BEGIN OF lt_value OCCURS 0,
  21.           bukrs LIKE ekko-bukrs,
  22.           ebeln LIKE ekko-ebeln,
  23.         END OF lt_value.
  24.   DATA:  lt_fields LIKE dynpread OCCURS 0 WITH HEADER LINE.
  25. ***  設置要抓取screen的欄位名  ***
  26.   lt_fields-fieldname = 'P_BUKRS'.
  27.   APPEND lt_fields.
  28. ***  通過此FM,取得上面指定的欄位值  ***
  29.   CALL FUNCTION 'DYNP_VALUES_READ'
  30.     EXPORTING
  31.       dyname               = sy-repid
  32.       dynumb               = sy-dynnr
  33.     TABLES
  34.       dynpfields           = lt_fields
  35.     EXCEPTIONS
  36.       invalid_abapworkarea = 1
  37.       invalid_dynprofield  = 2
  38.       invalid_dynproname   = 3
  39.       invalid_dynpronummer = 4
  40.       invalid_request      = 5
  41.       no_fielddescription  = 6
  42.       invalid_parameter    = 7
  43.       undefind_error       = 8
  44.       double_conversion    = 9
  45.       stepl_not_found      = 10
  46.       OTHERS               = 11.
  47.   IF sy-subrc <> 0.
  48. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  49. *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  50.   ENDIF.
  51.   READ TABLE lt_fields INDEX 1.
  52.   IF sy-subrc <> 0.
  53.     EXIT.
  54.   ELSE.
  55.     p_bukrs = lt_fields-fieldvalue.
  56.   ENDIF.
  57. ***  抓取數據庫中符合條件的值  ***
  58.   SELECT bukrs ebeln
  59.     INTO CORRESPONDING FIELDS OF TABLE lt_value
  60.     FROM ekko
  61.    WHERE bukrs = p_bukrs.
  62.   IF sy-subrc <> 0.
  63.     EXIT.
  64.   ENDIF.
  65. ***  F4 help  ***
  66.   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  67.     EXPORTING
  68.       retfield        = 'EBELN'
  69.       dynpprog        = sy-repid
  70.       dynpnr          = sy-dynnr
  71.       dynprofield     = cv_field
  72.       value_org       = 'S'
  73.     TABLES
  74.       value_tab       = lt_value
  75.     EXCEPTIONS
  76.       parameter_error = 1
  77.       no_values_found = 2
  78.       OTHERS          = 3.
  79.   IF sy-subrc <> 0.
  80. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  81. *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  82.   ENDIF.
  83. ENDFORM.                    " f4_help_ebeln

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21122155/viewspace-578424/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-15

  • 博文量
    7
  • 访问量
    14941