二维码

SAP选择屏幕简单下拉框的实现

Twilight发表于 2014-02-07 13:09Twilight 最后回复于 2014-02-07 13:09 [复制链接] 6071 0

选择屏幕的某些字段值非常固定,不妨用下拉菜单来实现其输入,非常快捷方便。具体程序示例如下:
listbox.jpg

程序代码:
  1. ************************************************************************
  2. **  声明表
  3. ************************************************************************
  4. TABLES:MARA.

  5. ************************************************************************
  6. **  定义内表结构
  7. ************************************************************************
  8. TYPE-POOLS VRM.

  9. TYPES:BEGIN OF TYP_RESULT,
  10.        VBELN LIKE VBAK-VBELN,"Sales Document
  11.        POSNR LIKE VBAP-POSNR,"Sales Document Item
  12.      END OF TYP_RESULT.
  13. ************************************************************************
  14. **  定义内表与变量
  15. ************************************************************************
  16. DATA:I_RESULT TYPE TABLE OF TYP_RESULT WITH HEADER LINE.

  17. DATA: I_VALUES TYPE VRM_VALUES WITH HEADER LINE.
  18. *@---------------------------------------------------------------------*
  19. *调用相关对象使用的变量

  20. ************************************************************************
  21. **  定义宏
  22. ************************************************************************
  23. DEFINE M_MAKT.

  24. END-OF-DEFINITION.
  25. ************************************************************************
  26. **  定制选择屏幕
  27. ************************************************************************
  28. SELECTION-SCREEN BEGIN OF BLOCK XAVERY WITH FRAME TITLE TEXT-001.
  29. PARAMETERS: P_MONTH LIKE ISELLIST-MONTH
  30.             OBLIGATORY DEFAULT SY-DATUM+0(6),
  31.             P_LGORT(4)  AS LISTBOX VISIBLE LENGTH 6 OBLIGATORY.
  32. SELECT-OPTIONS:S_MATKL  FOR MARA-MATKL.
  33. SELECTION-SCREEN END OF BLOCK XAVERY.
  34. ************************************************************************
  35. **  执行程序事件
  36. ************************************************************************
  37. INITIALIZATION.
  38.   PERFORM F_INIT_COND.

  39. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LGORT.
  40.   PERFORM F_SEARCH_HELP_LGORT.

  41. START-OF-SELECTION.
  42.   PERFORM F_PROCESS_OCND.

  43. *&---------------------------------------------------------------------*
  44. *&      Form  F_INIT_COND
  45. *&---------------------------------------------------------------------*
  46. *       text
  47. *----------------------------------------------------------------------*
  48. FORM F_INIT_COND .
  49.   I_VALUES-KEY = '1000'.
  50.   I_VALUES-TEXT = '上海四平仓库'.
  51.   APPEND I_VALUES.
  52.   I_VALUES-KEY = '2000'.
  53.   I_VALUES-TEXT = '北京中粮国库'.
  54.   APPEND I_VALUES.
  55.   I_VALUES-KEY = '3000'.
  56.   I_VALUES-TEXT = '南京后备库'.
  57.   APPEND I_VALUES.
  58. ENDFORM.                    " F_INIT_COND
  59. *&---------------------------------------------------------------------*
  60. *&      Form  F_PROCESS_OCND
  61. *&---------------------------------------------------------------------*
  62. *       初始化数据
  63. *----------------------------------------------------------------------*
  64. FORM F_PROCESS_OCND .

  65. ENDFORM.                    " F_PROCESS_OCND
  66. *&---------------------------------------------------------------------*
  67. *&      Form  F_SEARCH_HELP_LGORT
  68. *&---------------------------------------------------------------------*
  69. *       text
  70. *----------------------------------------------------------------------*
  71. FORM F_SEARCH_HELP_LGORT .
  72.   CALL FUNCTION 'VRM_SET_VALUES'
  73.     EXPORTING
  74.       ID              = 'P_LGORT'
  75.       VALUES          = I_VALUES[]
  76.     EXCEPTIONS
  77.       ID_ILLEGAL_NAME = 1
  78.       OTHERS          = 2.
  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.                    " F_SEARCH_HELP_LGORT
复制代码
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表