Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Select-Options NO INTERVALS

Former Member
0 Likes
20,580

I am using the NO INTERVALS addition for a select-options. When I use this addition, the user is still unfortunately allowed to enter a range after they select the drop down. Is there any way to exclude the tabs other than the Single Values tab in the select options dialog box? Your response is greatly anticipated.

Kind Regards,

Jason

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
9,369

Hi,

Check-out the FM :

CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'

You'll have to put the code in the 'INITIALIZATION' part of the ABAP before the START-OF-SELECTION event.


  MOVE 'ALL'        TO opt_list-name.
  MOVE 'X' TO: opt_list-options-bt,
               opt_list-options-eq.
  APPEND opt_list TO restrict-opt_list_tab.

  CLEAR ass.
  MOVE: 'B'          TO ass-kind,
        'KOSTL_RANGE_SET' TO ass-name,
        'I'          TO ass-sg_main,
        ' '          TO ass-sg_addy,
        'ALL'        TO ass-op_main,
        'ALL'        TO ass-op_main.
  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.

Best Regards,

Erwan.

Message was edited by: Erwan LE BRUN

I am using the NO INTERVALS addition for a select-options. When I use this addition, the user is still unfortunately allowed to enter a range after they select the drop down. Is there any way to exclude the tabs other than the Single Values tab in the select options dialog box? Your response is greatly anticipated.

Kind Regards,

Jason

8 REPLIES 8
Read only

Former Member
0 Likes
9,370

Hi,

Check-out the FM :

CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'

You'll have to put the code in the 'INITIALIZATION' part of the ABAP before the START-OF-SELECTION event.


  MOVE 'ALL'        TO opt_list-name.
  MOVE 'X' TO: opt_list-options-bt,
               opt_list-options-eq.
  APPEND opt_list TO restrict-opt_list_tab.

  CLEAR ass.
  MOVE: 'B'          TO ass-kind,
        'KOSTL_RANGE_SET' TO ass-name,
        'I'          TO ass-sg_main,
        ' '          TO ass-sg_addy,
        'ALL'        TO ass-op_main,
        'ALL'        TO ass-op_main.
  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.

Best Regards,

Erwan.

Message was edited by: Erwan LE BRUN

Read only

Former Member
0 Likes
9,369

Hi jason

is this your requirement

SELECT-OPTIONS airline FOR wa_spfli-carrid NO INTERVALS

<b> NO-EXTENSION</b>

regards

kishore

reward if helpful

Read only

Former Member
0 Likes
9,369

add no-extension

select-options: p_matnr for mara-matnr no-extension no intervals.

Read only

Former Member
0 Likes
9,369
REPORT TESTREP.

* Include type pool SSCR
TYPE-POOLS SSCR.

* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.

* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA ASS      TYPE SSCR_ASS.

* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
  SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
  SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
  SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
  SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END   OF BLOCK BLOCK_0.

* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
  SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
  SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END   OF BLOCK BLOCK_1.

INITIALIZATION.

* Define the option list

* ALL: All options allowed
  MOVE 'ALL'        TO OPT_LIST-NAME.
  MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
               OPT_LIST-OPTIONS-CP,
               OPT_LIST-OPTIONS-EQ,
               OPT_LIST-OPTIONS-GE,
               OPT_LIST-OPTIONS-GT,
               OPT_LIST-OPTIONS-LE,
               OPT_LIST-OPTIONS-LT,
               OPT_LIST-OPTIONS-NB,
               OPT_LIST-OPTIONS-NE,
               OPT_LIST-OPTIONS-NP.
  APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

* NOPATTERN: CP and NP not allowed
  CLEAR OPT_LIST.
  MOVE 'NOPATTERN'  TO OPT_LIST-NAME.
  MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
               OPT_LIST-OPTIONS-EQ,
               OPT_LIST-OPTIONS-GE,
               OPT_LIST-OPTIONS-GT,
               OPT_LIST-OPTIONS-LE,
               OPT_LIST-OPTIONS-LT,
               OPT_LIST-OPTIONS-NB,
               OPT_LIST-OPTIONS-NE.
  APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

* NOINTERVLS: BT and NB not allowed
  CLEAR OPT_LIST.
  MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
  MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
               OPT_LIST-OPTIONS-EQ,
               OPT_LIST-OPTIONS-GE,
               OPT_LIST-OPTIONS-GT,
               OPT_LIST-OPTIONS-LE,
               OPT_LIST-OPTIONS-LT,
               OPT_LIST-OPTIONS-NE,
               OPT_LIST-OPTIONS-NP.
  APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

* EQ_AND_CP: only EQ and CP allowed
  CLEAR OPT_LIST.
  MOVE 'EQ_AND_CP'  TO OPT_LIST-NAME.
  MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
               OPT_LIST-OPTIONS-EQ.
  APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

* JUST_EQ: Only EQ allowed
  CLEAR OPT_LIST.
  MOVE 'JUST_EQ' TO OPT_LIST-NAME.
  MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
  APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

* Assign selection screen objects to option list and sign

* KIND = 'A': applies to all SELECT-OPTIONS
  MOVE: 'A'          TO ASS-KIND,
        '*'          TO ASS-SG_MAIN,
        'NOPATTERN'  TO ASS-OP_MAIN,
        'NOINTERVLS' TO ASS-OP_ADDY.
  APPEND ASS TO RESTRICT-ASS_TAB.

* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
*             that is, SEL_0_0, SEL_0_1, SEL_0_2
  CLEAR ASS.
  MOVE: 'B'          TO ASS-KIND,
        'BLOCK_0'    TO ASS-NAME,
        'I'          TO ASS-SG_MAIN,
        '*'          TO ASS-SG_ADDY,
        'NOINTERVLS' TO ASS-OP_MAIN.
  APPEND ASS TO RESTRICT-ASS_TAB.

* KIND = 'S': applies to SELECT-OPTION SEL-0-2
  CLEAR ASS.
  MOVE: 'S'          TO ASS-KIND,
        'SEL_0_2'    TO ASS-NAME,
        'I'          TO ASS-SG_MAIN,
        '*'          TO ASS-SG_ADDY,
        'EQ_AND_CP'  TO ASS-OP_MAIN,
        'ALL'        TO ASS-OP_ADDY.
  APPEND ASS TO RESTRICT-ASS_TAB.

* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
  CLEAR ASS.
  MOVE: 'S'        TO ASS-KIND,
        'SEL_0_3'  TO ASS-NAME,
        'I'        TO ASS-SG_MAIN,
        'N'        TO ASS-SG_ADDY,
        'JUST_EQ'  TO ASS-OP_MAIN.
  APPEND ASS TO RESTRICT-ASS_TAB.

* Call function module
  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
       EXPORTING
             RESTRICTION                = RESTRICT
*           DB                          = ' '
       EXCEPTIONS
             TOO_LATE                   = 1
             REPEATED                   = 2
             NOT_DURING_SUBMIT          = 3
            DB_CALL_AFTER_REPORT_CALL  = 4
            SELOPT_WITHOUT_OPTIONS     = 5
             SELOPT_WITHOUT_SIGNS       = 6
             INVALID_SIGN               = 7
            REPORT_CALL_AFTER_DB_ERROR = 8
              EMPTY_OPTION_LIST          = 9
             INVALID_KIND               = 10
             REPEATED_KIND_A            = 11
             OTHERS                     = 12.

* Exception handling
  IF SY-SUBRC NE 0.
     ...
  ENDIF.

Read only

abdul_hakim
Active Contributor
0 Likes
9,369

Add no-extension addition also.

Regards,

Abdul

Read only

Former Member
0 Likes
9,369

write this PERFORM F_RESTRICT_MULTI_SELECT in the INITIALIZATION EVENT.

FORM F_RESTRICT_MULTI_SELECT .

*-- Set an option for only EQ

IT_OPT_LIST-NAME = 'NOINTERVLS'.

IT_OPT_LIST-OPTIONS-EQ = 'X'.

APPEND IT_OPT_LIST TO IT_RESTRICT-OPT_LIST_TAB.

*-- Match the option to the select option.

IT_SCRASS-KIND = 'S'.

IT_SCRASS-NAME = 'S_EMAIL'.

<b>*--This S_EMAIL is ur select-option name</b>

IT_SCRASS-SG_MAIN = 'I'.

IT_SCRASS-SG_ADDY = ' '.

IT_SCRASS-OP_MAIN = 'NOINTERVLS'.

APPEND IT_SCRASS TO IT_RESTRICT-ASS_TAB.

CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'

EXPORTING

PROGRAM = SY-CPROG

RESTRICTION = IT_RESTRICT

DB = ' '

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 I000 WITH 'Unable to restirct multiple selections'(018).

ENDIF.

Read only

Former Member
0 Likes
9,369

tables mara.

select-options: so_matnr for mara-matnr no-extension.

this will do and allows only two values to be entered.

hope this helps.

regards,

vijay.

Read only

Former Member
0 Likes
9,369

Thanks tremendously to all for your help. The FM approach was what I needed, since the NO EXTENSIONS option did not accomplish my goal. Thanks again.

Jason