分享

ABAP 选择屏幕下拉框

 一骑当千_30 2018-05-24

主要代码:


  1. *------------------------------------------------------------------------------*  
  2. *                             SELECTION-SCREEN                                 *  
  3. *------------------------------------------------------------------------------*  
  4. SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.  
  5. PARAMETERS: P_BWART TYPE RESB-BWART AS LISTBOX VISIBLE LENGTH 20 OBLIGATORY,  
  6.             P_WERKS TYPE RESB-WERKS OBLIGATORY DEFAULT '2000'.  
  7.   
  8. SELECT-OPTIONS: S_MATNR FOR RESB-MATNR,  
  9.                 S_RESNUM FOR RESB-RSNUM NO-EXTENSION NO INTERVALS ,  
  10. *                S_.                    NO-EXTENSION NO INTERVALS ,  '领用单号-自建表  
  11.                 S_BDTER FOR RESB-BDTER.  
  12. SELECTION-SCREEN END OF BLOCK blk1.  
  13.   
  14. *------------------------------------------------------------------------------*  
  15. *                             INITIALIZATION                                 *  
  16. *------------------------------------------------------------------------------*  
  17.   
  18. *------------------------------------------------------------------------------*  
  19. *                             AT SELECTION-SCREEN                              *  
  20. *------------------------------------------------------------------------------*  
  21. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BWART.  
  22.   PERFORM P_SET_SELECTION.  
  23. *------------------------------------------------------------------------------*  
  24. *                             START-OF-SELECTION                               *  
  25. *------------------------------------------------------------------------------*  
  26. START-OF-SELECTION.  
  27.   PERFORM P_GET_DATA.  
  28.   PERFORM P_DISPLAY.  
*------------------------------------------------------------------------------* * SELECTION-SCREEN * *------------------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001. PARAMETERS: P_BWART TYPE RESB-BWART AS LISTBOX VISIBLE LENGTH 20 OBLIGATORY, P_WERKS TYPE RESB-WERKS OBLIGATORY DEFAULT '2000'. SELECT-OPTIONS: S_MATNR FOR RESB-MATNR, S_RESNUM FOR RESB-RSNUM NO-EXTENSION NO INTERVALS , * S_. NO-EXTENSION NO INTERVALS , '领用单号-自建表 S_BDTER FOR RESB-BDTER. SELECTION-SCREEN END OF BLOCK blk1. *------------------------------------------------------------------------------* * INITIALIZATION * *------------------------------------------------------------------------------* *------------------------------------------------------------------------------* * AT SELECTION-SCREEN * *------------------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BWART. PERFORM P_SET_SELECTION. *------------------------------------------------------------------------------* * START-OF-SELECTION * *------------------------------------------------------------------------------* START-OF-SELECTION. PERFORM P_GET_DATA. PERFORM P_DISPLAY.

下拉框填数:

  1. *&---------------------------------------------------------------------*  
  2. *&      Form  P_SET_SELECTION  
  3. *&---------------------------------------------------------------------*  
  4. *       设置移动类型搜索帮助  
  5. *----------------------------------------------------------------------*  
  6. *  -->  p1        text  
  7. *  <--  p2        text  
  8. *----------------------------------------------------------------------*  
  9. FORM P_SET_SELECTION .  
  10.   TYPES :BEGIN OF TY,  
  11.    COL1 TYPE CHAR3 ,  
  12.    COL2  TYPE CHAR20 ,  
  13.   END OF TY.  
  14.   DATA ITAB TYPE TABLE OF TY.  
  15.   ITAB = VALUE #(  
  16.                   ( COL1 = 'Z09' COL2 = '成本中心领用')  
  17.                   ( COL1 = 'Z11' COL2 = '线边退料')  
  18.                   ( COL1 = 'Z13' COL2 = '成品工废、料废订单消耗领用')  
  19.                   ( COL1 = 'Z15' COL2 = '成品返工领用')  
  20.                   ( COL1 = 'Z16' COL2 = '项目领用')  
  21.                   ( COL1 = 'Z18' COL2 = '废品消耗领用' )  
  22.                   ( COL1 = 'S61' COL2 = '备件消耗领用' ) ).  
  23.   
  24.   
  25. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'  
  26.   EXPORTING  
  27. *   DDIC_STRUCTURE         = ' '  
  28.     RETFIELD               = 'COL1'  
  29. *   PVALKEY                = ' '  
  30.    DYNPPROG               = SY-REPID  
  31.    DYNPNR                 = SY-DYNNR  
  32.    DYNPROFIELD            = 'COL1'  
  33. *   STEPL                  = 0  
  34.    WINDOW_TITLE           = 'WINDOW--TITLE'  
  35. *   VALUE                  = ''  
  36.    VALUE_ORG              = 'S''C表示cell,S表示structure  
  37. *   MULTIPLE_CHOICE        = 'X''多项选择,用于SELECT-OPTIONS  
  38. *   DISPLAY                = 'F''C则只能显示,不能选择  
  39.    CALLBACK_PROGRAM       = sy-repid  
  40. *   CALLBACK_FORM          = ' '  
  41. *   MARK_TAB               =  
  42. * IMPORTING  
  43. *   USER_RESET             =  
  44.   TABLES  
  45.     VALUE_TAB              = ITAB  
  46. *   FIELD_TAB              = FIELD_TAB  
  47. *   RETURN_TAB             =  
  48. *   DYNPFLD_MAPPING        =  
  49.  EXCEPTIONS  
  50.    PARAMETER_ERROR        = 1  
  51.    NO_VALUES_FOUND        = 2  
  52.    OTHERS                 = 3  
  53.           .  
  54. IF SY-SUBRC <> 0.  
  55.  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO  
  56.          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
  57. ENDIF.  
  58. ENDFORM.  
*&---------------------------------------------------------------------* *& Form P_SET_SELECTION *&---------------------------------------------------------------------* * 设置移动类型搜索帮助 *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM P_SET_SELECTION . TYPES :BEGIN OF TY, COL1 TYPE CHAR3 , COL2 TYPE CHAR20 , END OF TY. DATA ITAB TYPE TABLE OF TY. ITAB = VALUE #( ( COL1 = 'Z09' COL2 = '成本中心领用') ( COL1 = 'Z11' COL2 = '线边退料') ( COL1 = 'Z13' COL2 = '成品工废、料废订单消耗领用') ( COL1 = 'Z15' COL2 = '成品返工领用') ( COL1 = 'Z16' COL2 = '项目领用') ( COL1 = 'Z18' COL2 = '废品消耗领用' ) ( COL1 = 'S61' COL2 = '备件消耗领用' ) ). CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING * DDIC_STRUCTURE = ' ' RETFIELD = 'COL1' * PVALKEY = ' ' DYNPPROG = SY-REPID DYNPNR = SY-DYNNR DYNPROFIELD = 'COL1' * STEPL = 0 WINDOW_TITLE = 'WINDOW--TITLE' * VALUE = '' VALUE_ORG = 'S''C表示cell,S表示structure * MULTIPLE_CHOICE = 'X''多项选择,用于SELECT-OPTIONS * DISPLAY = 'F''C则只能显示,不能选择 CALLBACK_PROGRAM = sy-repid * CALLBACK_FORM = ' ' * MARK_TAB = * IMPORTING * USER_RESET = TABLES VALUE_TAB = ITAB * FIELD_TAB = FIELD_TAB * RETURN_TAB = * DYNPFLD_MAPPING = 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.


效果:



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多