技术开发 频道

如何限制选择屏幕的OPTION

【IT168 技术文章】

    REPORT Z_CONECT_A.

    
* Include type pool SSCR
    TYPE
-POOLS sscr.

    TABLES : marc.

    
*定义选择屏幕select-options :
      s_matnr
for marc-matnr,
      s_werks
for marc-werks.

    
* Define the object to be passed to the RESTRICTION parameter
    DATA restrict TYPE sscr_restrict.

    
* Auxiliary objects for filling RESTRICT
    DATA : optlist TYPE sscr_opt_list,
               ass type sscr_ass.

    INITIALIZATION.

    
* 限制MATNR参数只能使用‘EQ’ 和‘BT’.
      optlist
-name = 'OBJECTKEY1'.
      optlist
-options-eq = 'X'.
      optlist
-options-bt = 'X'.
      APPEND optlist TO restrict
-opt_list_tab.

      ass
-kind = 'S'.
      ass
-name = 'S_MATNR'.
      ass
-sg_main = 'I'.
      ass
-sg_addy = space.
      ass
-op_main = 'OBJECTKEY1'.
      APPEND ass TO restrict
-ass_tab.

    
* 限制 WERKS 参数只能使用CP, GE, LT, NE.
      optlist
-name = 'OBJECTKEY2'.
      optlist
-options-cp = 'X'.
      optlist
-options-ge = 'X'.
      optlist
-options-lt = 'X'.
      optlist
-options-ne = 'X'.
      APPEND optlist TO restrict
-opt_list_tab.

      ass
-kind = 'S'.
      ass
-name = 'S_WERKS'.
      ass
-sg_main = 'I'.
      ass
-sg_addy = space.
      ass
-op_main = 'OBJECTKEY2'.
      APPEND ass TO restrict
-ass_tab.

      CALL FUNCTION
'SELECT_OPTIONS_RESTRICT'
       EXPORTING
        restriction                  
= restrict
       EXCEPTIONS
         TOO_LATE                    
= 1
         REPEATED                    
= 2
         SELOPT_WITHOUT_OPTIONS      
= 3
         SELOPT_WITHOUT_SIGNS        
= 4
         INVALID_SIGN                
= 5
         EMPTY_OPTION_LIST            
= 6
         INVALID_KIND                
= 7
         REPEATED_KIND_A              
= 8
         OTHERS                      
= 9
                .
      IF sy
-subrc <> 0.
     MESSAGE ID SY
-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY
-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
0
相关文章