二维码

在Module Pool类型程序中定义range范围

Twilight发表于 2014-10-11 09:16Twilight 最后回复于 2014-10-11 09:16 [复制链接] 3728 0

range table有四个字段,分别是Sign  Option  Low  High,下面将详细讲解在Module Pool类型程序中定义一个range
1、se38 创建一个Module pool (M type)程序,保存
Range in Module Pool 1.png
2、se51 为这个程序创建一个9000屏幕
Range in Module Pool 2.png
Range in Module Pool 3.png
3、点击layout,在屏幕上画one text field, two input/output field and background box
Range in Module Pool 4.png
输入框分别命名MLOW和MHIGH
4、se11 为这两个输入框定义一个search help
Range in Module Pool 5.png
Range in Module Pool 6.png
5、将search help填写到相应的屏幕属性上(mlow和mhigh都填写)
Range in Module Pool 7.png
6、放开逻辑流中的module User_command_9000
7、se93 为程序定义一个T-code
Range in Module Pool 8.png
Range in Module Pool 9.png
Range in Module Pool 10.png
8、程序代码:
  1. TYPE-POOLS:SLIS.
  2. TABLES : MARA .
  3. DATA :MLOW(18),MHIGH(18).
  4. DATA :MLOW1(18),MHIGH1(18).
  5. DATA: BEGIN OF T_MARA OCCURS 1,
  6.         MATNR TYPE MARA-MATNR,
  7.         ERSDA TYPE MARA-ERSDA,
  8.         ERNAM TYPE MARA-ERNAM,
  9.         PSTAT TYPE MARA-PSTAT,
  10.         MBRSH TYPE MARA-MBRSH,
  11.       END OF T_MARA.
  12. DATA : BEGIN OF RANGE OCCURS 0 ,
  13.        SIGN(1),
  14.        OPTION(2),
  15.        LOW(18),
  16.        HIGH(18),
  17.        END OF RANGE .
  18. DATA : T_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV ,
  19.        W_FCAT TYPE SLIS_FIELDCAT_ALV ,
  20.        W_LAYO TYPE SLIS_LAYOUT_ALV .
  21. *&---------------------------------------------------------------------*
  22. *&      Module  USER_COMMAND_9000  INPUT
  23. *&---------------------------------------------------------------------*
  24. *       text
  25. *----------------------------------------------------------------------*
  26. MODULE USER_COMMAND_9000 INPUT.
  27.   CASE SY-UCOMM.
  28.     WHEN ''."FC-CODE OF ENTER BUTTON
  29.       CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' "CONVERSION ROUTINE FOR MLOW
  30.         EXPORTING
  31.           INPUT              = MLOW
  32.        IMPORTING
  33.          OUTPUT             = MLOW1
  34.        EXCEPTIONS
  35.          LENGTH_ERROR       = 1
  36.          OTHERS             = 2
  37.                 .
  38.       IF SY-SUBRC <> 0.
  39.         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  40.                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  41.       ENDIF.
  42.       CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'"CONVERSION ROUTINE FOR MHIGH
  43.         EXPORTING
  44.           INPUT              = MHIGH
  45.        IMPORTING
  46.          OUTPUT             = MHIGH1
  47.        EXCEPTIONS
  48.          LENGTH_ERROR       = 1
  49.          OTHERS             = 2
  50.                 .
  51.       IF SY-SUBRC <> 0.
  52.         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  53.                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  54.       ENDIF.
  55. ******************************************************************
  56. * LOGICALLY BUILD A INTERNAL TABLE (RANGE)
  57. ******************************************************************
  58.       RANGE-SIGN = 'I'. " I OR E
  59.       RANGE-OPTION = 'BT'.
  60.       RANGE-LOW = MLOW1 .
  61.       RANGE-HIGH = MHIGH1 .
  62.       APPEND RANGE ."APPEND DATA IN INTERNAL TABLE
  63. ******************************************************************
  64.       PERFORM FETCH_DATA .
  65.       PERFORM DISPLAY_DATA .
  66.   ENDCASE.
  67. ENDMODULE.                 " USER_COMMAND_9000  INPUT
  68. *&---------------------------------------------------------------------*
  69. *&      Form  FETCH_DATA
  70. *&---------------------------------------------------------------------*
  71. *       text
  72. *----------------------------------------------------------------------*
  73. *  -->  p1        text
  74. *  <--  p2        text
  75. *----------------------------------------------------------------------*
  76. FORM FETCH_DATA .
  77.           SELECT  MATNR
  78.                   ERNAM
  79.                   ERSDA
  80.                   PSTAT
  81.                   MBRSH
  82.                   FROM MARA
  83.                   INTO CORRESPONDING FIELDS OF TABLE T_MARA
  84.                   WHERE MATNR IN RANGE .

  85. ENDFORM.                    " FETCH_DATA
  86. *&---------------------------------------------------------------------*
  87. *&      Form  DISPLAY_DATA
  88. *&---------------------------------------------------------------------*
  89. *       text
  90. *----------------------------------------------------------------------*
  91. *  -->  p1        text
  92. *  <--  p2        text
  93. *----------------------------------------------------------------------*
  94. FORM DISPLAY_DATA .
  95.   LEAVE TO LIST-PROCESSING .
  96.   W_FCAT-TABNAME = 'MARA'.
  97.   W_FCAT-FIELDNAME = 'MATNR'.
  98.   W_FCAT-SELTEXT_M = 'Material No'.
  99.   APPEND w_fcat to t_Fcat .
  100.     W_FCAT-TABNAME = 'MARA'.
  101.   W_FCAT-FIELDNAME = 'ERSDA'.
  102.   W_FCAT-SELTEXT_M = 'Created On'.
  103.   APPEND w_fcat to t_Fcat .
  104.     W_FCAT-TABNAME = 'MARA'.
  105.   W_FCAT-FIELDNAME = 'ERNAM'.
  106.   W_FCAT-SELTEXT_M = 'Name of Person'.
  107.   APPEND w_fcat to t_Fcat .
  108.     W_FCAT-TABNAME = 'MARA'.
  109.   W_FCAT-FIELDNAME = 'PSTAT'.
  110.   W_FCAT-SELTEXT_M = 'Maintenance status'.
  111.   APPEND w_fcat to t_Fcat .
  112.     W_FCAT-TABNAME = 'MARA'.
  113.   W_FCAT-FIELDNAME = 'MBRSH'.
  114.   W_FCAT-SELTEXT_M = 'Industry sector'.
  115.   APPEND w_fcat to T_FCAT.
  116.   W_LAYO-ZEBRA = 'X'.
  117.   W_LAYO-COLWIDTH_OPTIMIZE = 'X'.
  118.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  119.    EXPORTING
  120. *   I_INTERFACE_CHECK                 = ' '
  121. *   I_BYPASSING_BUFFER                = ' '
  122. *   I_BUFFER_ACTIVE                   = ' '
  123. *   I_CALLBACK_PROGRAM                = ' '
  124. *   I_CALLBACK_PF_STATUS_SET          = ' '
  125. *   I_CALLBACK_USER_COMMAND           = ' '
  126. *   I_CALLBACK_TOP_OF_PAGE            = ' '
  127. *   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
  128. *   I_CALLBACK_HTML_END_OF_LIST       = ' '
  129. *     I_STRUCTURE_NAME             = 'MARA'
  130. *   I_BACKGROUND_ID                   = ' '
  131.      I_GRID_TITLE                      ='MATERIAL REPORT'
  132. *   I_GRID_SETTINGS                   =
  133.    IS_LAYOUT                         = W_LAYO
  134.    IT_FIELDCAT                       = T_FCAT
  135. *   IT_EXCLUDING                      =
  136. *   IT_SPECIAL_GROUPS                 =
  137. *   IT_SORT                           =
  138. *   IT_FILTER                         =
  139. *   IS_SEL_HIDE                       =
  140. *   I_DEFAULT                         = 'X'
  141. *   I_SAVE                            = ' '
  142. *   IS_VARIANT                        =
  143. *   IT_EVENTS                         =
  144. *   IT_EVENT_EXIT                     =
  145. *   IS_PRINT                          =
  146. *   IS_REPREP_ID                      =
  147. *   I_SCREEN_START_COLUMN             = 0
  148. *   I_SCREEN_START_LINE               = 0
  149. *   I_SCREEN_END_COLUMN               = 0
  150. *   I_SCREEN_END_LINE                 = 0
  151. *   I_HTML_HEIGHT_TOP                 = 0
  152. *   I_HTML_HEIGHT_END                 = 0
  153. *   IT_ALV_GRAPHICS                   =
  154. *   IT_HYPERLINK                      =
  155. *   IT_ADD_FIELDCAT                   =
  156. *   IT_EXCEPT_QINFO                   =
  157. *   IR_SALV_FULLSCREEN_ADAPTER        =
  158. * IMPORTING
  159. *   E_EXIT_CAUSED_BY_CALLER           =
  160. *   ES_EXIT_CAUSED_BY_USER            =
  161.     TABLES
  162.       T_OUTTAB                          = T_MARA[]
  163. * EXCEPTIONS
  164. *   PROGRAM_ERROR                     = 1
  165. *   OTHERS                            = 2
  166.             .
  167.   IF SY-SUBRC <> 0.
  168. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  169. *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  170.   ENDIF.
  171. ENDFORM.                    " DISPLAY_DATA
复制代码

9、执行程序,查看效果
Range in Module Pool 11.png
输入条件enter回车
Range in Module Pool 12.png
回复

使用道具 举报

快速回帖

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

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