Select Option header cleared after FM call

Hi
I'm calling an FM in the AT SELECTION SCREEN event in which I'm using some FMs to validate the values entered by the user. However on returning from the FM the header of the select option gets cleared. And the value you entered on the select option thereby also is gone. (However it can be seen in the multiple selection options)
I export nothing to the FM and only import tyhe name of the select-option/parameter (like s_matnr-low or p_ernam).
Why is this happening and what could be done about it?
Pushpraj
Edited by: Pushpraj Singh on Sep 24, 2009 7:40 PM

Here's the thing:
I made an FM which is called in the AT SELECTION SCREEN event of a report.
This FM is supposed to validate the entries made by the user (whether they belong to the domain of the fields or not).
It exports the name of the select-option or parameter which is incorrectly filled.
Now say there is one select-option and one parameter on the selection screen.; and I put a valid value in the select-option and an invalid one in the parameter.
The FM now returns the name of the parameter (say p_ernam) but also clears the header of the select-option table (not the body). If the FM does not return anything the header is not cleared. However any value in the return parameter makes the header disappear.
Pushpraj

Similar Messages

  • Select-options are not destroyed while calling view of used component popup

    Hi Friends ,
    I'm facing a unique problem. I'm calling a view of a component within another component. the view that I'm calling has some select-options. When I close the popup window ( using close 'X' of popup ) and then try to reopen the popup system give me a dump. I debugged and found that select-options are not destroyed by system and once it tries to create the select-options again it dumps because they are already there.  
    This is the source code extract of that dump for your reference .
    1 method if_wd_select_options~add_selection_field.
    2
    3   data:
    4     lr_table_descr       type ref to cl_abap_tabledescr,
    5     lr_struct_descr      type ref to cl_abap_structdescr,
    6     lr_value_field_descr type ref to cl_abap_elemdescr,
    7     added_field          like line of mt_added_fields,
    8     dfies                type dfies,
    9     description          type string,
    10     complex_restrictions type if_wd_select_options=>t_complex_restrictions.
    11
    12   field-symbols:
    13     <it_result> type index table.
    14
    15 * check of someone wants to add a field that already exists
    16   read table mt_fields
    17        with key m_id = i_id
    18        transporting no fields.
    19   if sy-subrc = 0.
    20 *   might be deleted - recreating a field with different setting is of course allowed
    21     read table mt_all_removed_fields
    22          with key table_line = i_id
    23          transporting no fields.
    24     if sy-subrc <> 0.
    >>>       message x000(00).
    26     endif.
    27
    28 *   remove the existing field in order to avoid duplicates
    29     delete table mt_fields with table key m_id = i_id.
    30   endif.
    I've already tried using REMOVE_ALL_SEL_SCREEN_ITEMS( ) method of interface IF_WD_SELECT_OPTIONS before creating new elements ( select-options ). If any one can help me in this It would really help and I'll appreciate it.
    Thanks in advance,
    Laeeq

    I've sloved the problem

  • How do I pass SELECT-OPTIONS to another screen via CALL TRANSACTION?

    Good day, everyone!
    I am writing a program that will be passing PARAMETERS and SELECT-OPTIONS values to another transaction via the CALL TRANSACTION statement.  I'm new at this, and I've run into a problem.  I have several fields that are defined as SELECT-OPTIONS, like so:
    SELECT-OPTIONS so_ccode FOR fkkop-bukrs.
    The user may select multiple values, enter a range, exclude certain values, etc. -- the things a SELECT-OPTIONS allows.
    But how do I pass all of this to a field on another screen using CALL TRANSACTION when I only have two fields (BDCDATA-FNAM and BDCDATA-FVAL) available to me?  That works fine for PARAMETERS, but I can send low/high values, different signs/options, etc. for the SELECT-OPTIONS variables.
    Please help!!  Points awarded for all helpful answers.
    Thank you,
    Dave

    Don't use CALL TRANSACTION. Use SUBMIT instead.
    Rob

  • Assign return itab to select options field

    Hi Dear Experts,
    I am not be able to pass "r_pobjid" to a select-options field
    clearly as desired as well.
    As already mentioned r_pobjid must be presented to a
    select options field after the user has made his selections.
    Can you pls give me deciding  hint to solve the problem.
    This below demonstrated solution doesn't work.
    Regards
      CALL FUNCTION 'RP_PNP_ORGSTRUCTURE'
        TABLES
          pobjid = r_pobjid.
      p_orgeh-high = r_pobjid.
      p_orgeh-sign = 'I'.
      p_orgeh-option = 'EQ'.
      APPEND p_orgeh.

    I think you need pass
    Loop at r_pobjid
    1).
    p_orgeh-low = r_pobjid.
    p_orgeh-high = r_pobjid.
    p_orgeh-sign = 'I'.
    p_orgeh-option = 'BT'.
    APPEND p_orgeh.
    2). or
    p_orgeh-low = r_pobjid.
    p_orgeh-sign = 'I'.
    p_orgeh-option = 'EQ'.
    APPEND p_orgeh.
    endloop.

  • Select-Options NO INTERVALS

    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

    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 ***      TYPE SSCR_***.
    * 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 ***-KIND,
            '*'          TO ***-SG_MAIN,
            'NOPATTERN'  TO ***-OP_MAIN,
            'NOINTERVLS' TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
    *             that is, SEL_0_0, SEL_0_1, SEL_0_2
      CLEAR ***.
      MOVE: 'B'          TO ***-KIND,
            'BLOCK_0'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'NOINTERVLS' TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': applies to SELECT-OPTION SEL-0-2
      CLEAR ***.
      MOVE: 'S'          TO ***-KIND,
            'SEL_0_2'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'EQ_AND_CP'  TO ***-OP_MAIN,
            'ALL'        TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': Applies to SELECT-OPTION SEL_0_3
      CLEAR ***.
      MOVE: 'S'        TO ***-KIND,
            'SEL_0_3'  TO ***-NAME,
            'I'        TO ***-SG_MAIN,
            'N'        TO ***-SG_ADDY,
            'JUST_EQ'  TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_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.

  • Disabling the Ranges option in Select options

    Hi,
    I have a requirement where I have to remove the possibility of entering the ranges for select-options on the selection screen (eg: FROM ‘xyz’ TO ‘xyz’ ).. For this I used SELECT OPTIONS ……… NO INTERVALS.
    Now the range option doesn’t appear on the main selection screen. However, when I click on the ‘Multiple Selection’ screen button next to this field.. here again I find an option to enter the ranges. Is there a way to disable this option on the ‘Multiple Selection’ screen.
    Could anyone please help me in this.
    Regards,
    Harsha

    chk this program
    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 ***      TYPE SSCR_***.
    * 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 ***-KIND,
            '*'          TO ***-SG_MAIN,
            'NOPATTERN'  TO ***-OP_MAIN,
            'NOINTERVLS' TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
    *             that is, SEL_0_0, SEL_0_1, SEL_0_2
      CLEAR ***.
      MOVE: 'B'          TO ***-KIND,
            'BLOCK_0'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'NOINTERVLS' TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': applies to SELECT-OPTION SEL-0-2
      CLEAR ***.
      MOVE: 'S'          TO ***-KIND,
            'SEL_0_2'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'EQ_AND_CP'  TO ***-OP_MAIN,
            'ALL'        TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': Applies to SELECT-OPTION SEL_0_3
      CLEAR ***.
      MOVE: 'S'        TO ***-KIND,
            'SEL_0_3'  TO ***-NAME,
            'I'        TO ***-SG_MAIN,
            'N'        TO ***-SG_ADDY,
            'JUST_EQ'  TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_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.
    Message was edited by: Sekhar

  • Reset Select options in Screen

    Hi,
    I have a scenario where, i need to disable the select options and clear the visible contents in it.
    Currently below is the logic implemented, the radio button is getting disabled and also cleared of selection.
    Select option fields are getting disabled.
    But the issue is, the Select options LOW and HIGH fields show the older values and are not getting reset.
    Please share your thoughts.
    PARAMETERS : r_pernr RADIOBUTTON GROUP g2 MODIF ID cs1.
    SELECT-OPTIONS :   p_pernr FOR pa0001-pernr MODIF ID cs1.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF V_Flag NE 'X' AND
           screen-group1 = 'CS1'.
          r_pernr = space.
          p_pernr-low = space.
          p_pernr-high = space.
          screen-input = 0.
          MODIFY SCREEN.
       ENDIF.
      ENDLOOP.

    TABLES:PA0001.
    DATA:LF_PERNR TYPE CHAR08.
    PARAMETERS : R_PERNR RADIOBUTTON GROUP G2 MODIF ID CS1,
                 R_2 RADIOBUTTON GROUP G2.
    SELECT-OPTIONS : P_PERNR FOR LF_PERNR MODIF ID CS1.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        R_PERNR = SPACE.
        CLEAR P_PERNR[].
        SCREEN-INPUT = 0.
        MODIFY SCREEN.
    ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PERNR-LOW.
      PERFORM F4_HELP USING 'P_PERNR-LOW'.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PERNR-HIGH.
      PERFORM F4_HELP USING 'P_PERNR-HIGH'.
    FORM F4_HELP USING PC_1.
      TYPES:BEGIN OF TY,
          PERNR TYPE PA0001-PERNR,
          END OF TY.
      DATA:IT TYPE TABLE OF TY.
      SELECT PERNR INTO TABLE IT FROM PA0001 UP TO 10 rows.
      CHECK IT[] IS NOT INITIAL.
      DELETE ADJACENT DUPLICATES FROM IT.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD    = 'PERNR'
          DYNPPROG    = SY-CPROG
          DYNPNR      = SY-DYNNR
          DYNPROFIELD = PC_1
          VALUE_ORG       = 'S'
        TABLES
          VALUE_TAB   = IT[]
        EXCEPTIONS
          OTHERS      = 0.
    ENDFORM.          

  • How to avoid ranges option in the select option.

    Hi All,
        In the selection screen, when the user press the extension button usaually we are getting four columns. those columns are 2 sinlge vals, 2 ranges. but as per my requirement, user wants to display only one single val column in that dialog window.
    please help me in this regard.
    -Pesi.

    use SELECT_OPTINS_RESTRICT  FM
    chk the sample code
    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 ***      TYPE SSCR_***.
    * 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 ***-KIND,
            '*'          TO ***-SG_MAIN,
            'NOPATTERN'  TO ***-OP_MAIN,
            'NOINTERVLS' TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
    *             that is, SEL_0_0, SEL_0_1, SEL_0_2
      CLEAR ***.
      MOVE: 'B'          TO ***-KIND,
            'BLOCK_0'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'NOINTERVLS' TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': applies to SELECT-OPTION SEL-0-2
      CLEAR ***.
      MOVE: 'S'          TO ***-KIND,
            'SEL_0_2'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'EQ_AND_CP'  TO ***-OP_MAIN,
            'ALL'        TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': Applies to SELECT-OPTION SEL_0_3
      CLEAR ***.
      MOVE: 'S'        TO ***-KIND,
            'SEL_0_3'  TO ***-NAME,
            'I'        TO ***-SG_MAIN,
            'N'        TO ***-SG_ADDY,
            'JUST_EQ'  TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_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.

  • Disable select options field

    Hi,,
    I need to disable one of the select option field s_date in my selection screen.
    I need to it to have the values that are populated in the initialization event and disable it for further entries.
    Can someone please let me know how to do this.
    Thanks in advance.

    Use the following FM for that purpose:
    SELECT_OPTIONS_RESTRICT
    Refer the code:
    * 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 ***      TYPE SSCR_***.
    * 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 ***-KIND,
            '*'          TO ***-SG_MAIN,
            'NOPATTERN'  TO ***-OP_MAIN,
            'NOINTERVLS' TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
    *             that is, SEL_0_0, SEL_0_1, SEL_0_2
      CLEAR ***.
      MOVE: 'B'          TO ***-KIND,
            'BLOCK_0'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'NOINTERVLS' TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': applies to SELECT-OPTION SEL-0-2
      CLEAR ***.
      MOVE: 'S'          TO ***-KIND,
            'SEL_0_2'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'EQ_AND_CP'  TO ***-OP_MAIN,
            'ALL'        TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': Applies to SELECT-OPTION SEL_0_3
      CLEAR ***.
      MOVE: 'S'        TO ***-KIND,
            'SEL_0_3'  TO ***-NAME,
            'I'        TO ***-SG_MAIN,
            'N'        TO ***-SG_ADDY,
            'JUST_EQ'  TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_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.

  • Modify select-option!!

    Hi
    i hav to modify select-option:
    The select-option S_LGORT, S_VSTEL and S_LGORT will be restricted.
    Only show tab Single vals and ranges, and option equal...how shall i modify..loop at that select-option or directly assign the option value n modify ...points for sure...
    Regards
    Gunjan

    chk this report
    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 ***      TYPE SSCR_***.
    * 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 ***-KIND,
            '*'          TO ***-SG_MAIN,
            'NOPATTERN'  TO ***-OP_MAIN,
            'NOINTERVLS' TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
    *             that is, SEL_0_0, SEL_0_1, SEL_0_2
      CLEAR ***.
      MOVE: 'B'          TO ***-KIND,
            'BLOCK_0'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'NOINTERVLS' TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': applies to SELECT-OPTION SEL-0-2
      CLEAR ***.
      MOVE: 'S'          TO ***-KIND,
            'SEL_0_2'    TO ***-NAME,
            'I'          TO ***-SG_MAIN,
            '*'          TO ***-SG_ADDY,
            'EQ_AND_CP'  TO ***-OP_MAIN,
            'ALL'        TO ***-OP_ADDY.
      APPEND *** TO RESTRICT-***_TAB.
    * KIND = 'S': Applies to SELECT-OPTION SEL_0_3
      CLEAR ***.
      MOVE: 'S'        TO ***-KIND,
            'SEL_0_3'  TO ***-NAME,
            'I'        TO ***-SG_MAIN,
            'N'        TO ***-SG_ADDY,
            'JUST_EQ'  TO ***-OP_MAIN.
      APPEND *** TO RESTRICT-***_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.

  • How can we pass the select-option value to modulepool program?

    hi,
      how can we pass the select-option value to modulepool program ?
      Because if i declared select-options in executable program and i used SSCRFIELDS to define push buttons in selection screen.
               My requirement if enter the values to select-options and press UPDATE pussbotton then i want call screen which contains tablecontrol.
               How i get select-option values to PAI of call screen for getting the data from database table to my internal table?

    Oh I thought that you have selection-screen and again you are working on dialog programming.
    if you want to use select-option directly in module pool then it is not possible.
    but you can do other way.
    create two varaiables
    data : v_kun_low like kna1-kunnr,
             v_kun_high like kna1-kunnr.
    use these two variables in layout ,let user knows that he can not give options like gt,lt,eq ,it will be always BT.
    and also when you see normal report program,you can use multiple values in either low or high,but here it is not possibel.
    use can enter only low value and high value.
    when you come to program point of view
    declare one range
    ranges r_kunnr for kna1-kunnr.
    do the coding like
    r_kunnr-low = v_kun_low.
    r_kunnr-high = v_kun_high.
    r_kunnr-options = 'BT'.
    r_kunnr-sign = 'I'.
    append r_kunnr.
    now you can use r_kunnr in select query ,it will work like select-option.
    other than this there is no option.
    Thanks
    Seshu

  • Using selection options in functions..

    Hi,
    I have written abap program in which there are 3 selection options.. I want to pass these selection options to a function.  so I want to know how to define or refer selection options in functions which is called by some other abap program ?
    Regards,
    Santosh

    The select options are basically just tables with a specific structure. One option would be to specify them as TABLES parameters, e.g. check out function module BAPI_MATERIAL_GETLIST and you can see for example a call via function IAC_SHMA_MATERIALS_SELECT (or check dictionary table type SHP_MATNR_RANGE_T in SE11).
    Cheers, harald

  • Set parameter id for select-options to fill more than one value

    FROM MY CUSTOM PROGRAM I AM CALLING A TRANSACTION CODE. IN MY REPORT I WANT TO SELECT MORE THAN ONE RECORD AND TO CALL THE TRANSACTION BY PASSING THE SELECTED VALUES TO THE SELECT-OPTIONS OF THE TRANSACTION.
    IF IT IS A PARAMETER I CAN WRITE SET PARAMETER STATEMENT FOR ONE VALUE AND EASILY CALL THE TRANSACTION. BUT I WANT TO FILL THE SELECT-OPTIONS OF THE TCODE.
    CAN ANYBODY PLEASE PROVIDE ME THE LOGIC HOW TO FILL THE SELECT-OPTIONS FROM MY REPORT FOR CALLING THE TRANSACTION.
    REGARDS,
    VASU.

    Hi..
    Instead of calling the Transaction
    Call the Report directly using:
    (First declare the Ranges)
    ranges : R_matnr for mara-matnr.
    (Fill the values into Ranges Table and call the report )
    SUBMIT <REPORT>
      With s_matnr in R_matnr.
    <b>Reward if helpful.</b>

  • Header Text selection Option

    Hi,
      I have developed a report which include a number of fields that come from the header text of the document.  Besides, those fields are also used as the selection options.  So, I use the function module READ_TEXT to retrieve it and compare it.  The problem is the performance of the report is very bad.  It takes 3 mins to get 3 records.   Is there any way to resolve this??
    SELECT-OPTIONS: S_WADAT FOR LIKP-WADAT_IST.
      PARAMETERS: P_MAWB LIKE WA_REPORT-KZABE.
      PARAMETERS: P_HAWB LIKE LIKP-BOLNR.
      PARAMETERS: P_MATNR LIKE LIPS-MATNR.
      PARAMETERS: P_LOT(20) TYPE C.
      CLEAR: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
      REFRESH: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
      DATA WHERE_TAB(80) OCCURS 10 WITH HEADER LINE.
      DATA: BEGIN OF LTEXT OCCURS 50.
              INCLUDE STRUCTURE TLINE.
      DATA: END OF LTEXT.
      IF NOT P_HAWB IS INITIAL.
        CONCATENATE ' BOLNR = ' WHERE_TAB INTO WHERE_TAB.
        CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
        CONCATENATE WHERE_TAB P_HAWB INTO WHERE_TAB.
        CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
        APPEND WHERE_TAB.
      ENDIF.
      IF NOT P_MATNR IS INITIAL.
        IF NOT WHERE_TAB IS INITIAL.
          CONCATENATE ' AND MATNR = ' WHERE_TAB INTO WHERE_TAB.
        ELSE.
          CONCATENATE ' MATNR = ' WHERE_TAB INTO WHERE_TAB.
        ENDIF.
        CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
        CONCATENATE WHERE_TAB P_MATNR INTO WHERE_TAB.
        CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
        APPEND WHERE_TAB.
      ENDIF.
      SELECT A1~VBELN
             WADAT_IST
             BOLNR
             C1~LIFNR
             B1~MATNR
             LFIMG
             BTGEW
             B1~CHARG
        INTO CORRESPONDING FIELDS OF TABLE TMP_REPORT
        FROM LIKP AS A1 JOIN LIPS AS B1 ON A1~VBELN = B1~VBELN
            JOIN MCHA AS C1 ON B1~MATNR = C1~MATNR
                               AND
                               B1~WERKS = C1~WERKS
                               AND
                               B1~CHARG = C1~CHARG
         WHERE LFART = 'EL'
               AND
               WADAT_IST IN S_WADAT
               AND
               B1~CHARG NE ''
               AND
               B1~WERKS = 'ABC'
               AND
               (WHERE_TAB)
      SORT TMP_REPORT BY VBELN.
      DATA: V_FLAG TYPE I,
            V_EXCLUDE TYPE I,
            V_LOT_EXCLUDE TYPE I.
      V_FLAG = 0.
      V_EXCLUDE = 0.
      V_LOT_EXCLUDE = 0.
      IF SY-SUBRC = 0.
    * trim the parameter space
        SHIFT P_MAWB RIGHT DELETING TRAILING SPACE.
        SHIFT P_MAWB LEFT DELETING LEADING SPACE.
        SHIFT P_LOT RIGHT DELETING TRAILING SPACE.
        SHIFT P_LOT LEFT DELETING LEADING SPACE.
        LOOP AT TMP_REPORT.
          AT NEW VBELN.
            V_FLAG = 1.
            V_EXCLUDE = 0.
          ENDAT.
          IF V_FLAG = 1.
            PERFORM GET_HEADER_TEXT
                  TABLES
                       LTEXT
                  USING
                       'Z3IH'
                        TMP_REPORT-VBELN
            READ TABLE LTEXT INDEX 1.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-VERUR TMP_REPORT-VERUR.
            READ TABLE LTEXT INDEX 2.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-KZGBE TMP_REPORT-KZGBE.
            READ TABLE LTEXT INDEX 3.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-KZABE TMP_REPORT-KZABE.
            READ TABLE LTEXT INDEX 4.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-STABE TMP_REPORT-STABE.
            READ TABLE LTEXT INDEX 5.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-PRONU TMP_REPORT-PRONU.
            READ TABLE LTEXT INDEX 6.
            SPLIT LTEXT-TDLINE AT ':' INTO
            TMP_REPORT-LADEL TMP_REPORT-LADEL.
            SHIFT TMP_REPORT-KZABE RIGHT DELETING TRAILING SPACE.
            SHIFT TMP_REPORT-KZABE LEFT DELETING LEADING SPACE.
            MOVE-CORRESPONDING TMP_REPORT TO WA_REPORT.
            MOVE-CORRESPONDING TMP_REPORT TO WA_TMPREPORT.
            V_FLAG = 0.
          ELSE.
            MOVE TMP_REPORT-VBELN TO WA_REPORT-VBELN.
            MOVE TMP_REPORT-LIFNR TO WA_REPORT-LIFNR.
            MOVE TMP_REPORT-MATNR TO WA_REPORT-MATNR.
            MOVE TMP_REPORT-LFIMG TO WA_REPORT-LFIMG.
          ENDIF.
          PERFORM GET_LOT_CODE USING
                                     WA_REPORT-MATNR
                                     '3LTU'
                                     WA_TMPREPORT-CHARG
                                     WA_REPORT-LOT.
          IF V_EXCLUDE <> 1 AND P_MAWB NE ''
            AND WA_TMPREPORT-KZABE NE P_MAWB .
            V_EXCLUDE = 1.
          ENDIF.
          SHIFT WA_REPORT-LOT RIGHT DELETING TRAILING SPACE.
          SHIFT WA_REPORT-LOT LEFT DELETING LEADING SPACE.
          IF P_LOT NE '' AND P_LOT NE WA_REPORT-LOT.
            V_LOT_EXCLUDE = 1.
          ELSE.
            V_LOT_EXCLUDE = 0.
          ENDIF.
          IF V_EXCLUDE <> 1 AND V_LOT_EXCLUDE <> 1.
            APPEND WA_REPORT TO I_REPORT.
            CLEAR WA_REPORT.
            CLEAR TMP_REPORT.
          ENDIF.
        ENDLOOP.
    Regards,
    Kit

    Here is my code
      FORM GET_LOT_CODE USING MATCODE PLANT BATCH LOT_CODE.
      DATA: W_OBJECTTAVLE LIKE BAPI1003_KEY-OBJECTTABLE VALUE 'MCHA',
            W_CLASSNUM LIKE BAPI1003_KEY-CLASSNUM VALUE 'Z003',
            W_CLASSTYPE LIKE BAPI1003_KEY-CLASSTYPE VALUE '022',
            IT_ALLOCVALUESNUM LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0,
            IT_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0,
            WA_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR,
            IT_ALLOCVALUESCURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0,
            IT_RETURN LIKE BAPIRET2 OCCURS 0.
      DATA: BEGIN OF IT_OBJECT OCCURS 0.
              INCLUDE STRUCTURE BAPI1003_OBJECT_KEYS.
      DATA: END OF IT_OBJECT.
      DATA: W_OBJECT LIKE BAPI1003_KEY-OBJECT.
      CLEAR: IT_OBJECT, IT_RETURN.
      REFRESH: IT_OBJECT, IT_RETURN.
      IT_OBJECT-KEY_FIELD = 'MATNR'.
      IT_OBJECT-VALUE_INT = MATCODE.
      APPEND IT_OBJECT.
      IT_OBJECT-KEY_FIELD = 'WERKS'.
      IT_OBJECT-VALUE_INT = PLANT.
      APPEND IT_OBJECT.
      IT_OBJECT-KEY_FIELD = 'CHARG'.
      IT_OBJECT-VALUE_INT = BATCH.
      APPEND IT_OBJECT.
      CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
           EXPORTING
                OBJECTTABLE    = 'MCHA'
           IMPORTING
                OBJECTKEY_CONC = W_OBJECT
           TABLES
                OBJECTKEYTABLE = IT_OBJECT
                RETURN         = IT_RETURN.
      CLEAR: IT_RETURN.
      REFRESH: IT_RETURN.
      CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
           EXPORTING
                OBJECTKEY       = W_OBJECT
                OBJECTTABLE     = W_OBJECTTAVLE
                CLASSNUM        = W_CLASSNUM
                CLASSTYPE       = W_CLASSTYPE
           TABLES
                ALLOCVALUESNUM  = IT_ALLOCVALUESNUM
                ALLOCVALUESCHAR = IT_ALLOCVALUESCHAR
                ALLOCVALUESCURR = IT_ALLOCVALUESCURR
                RETURN          = IT_RETURN.
      LOOP AT IT_ALLOCVALUESCHAR INTO WA_ALLOCVALUESCHAR.
        IF WA_ALLOCVALUESCHAR-CHARACT = 'Z_VENDOR_LOT_NUMBER'.
          LOT_CODE = WA_ALLOCVALUESCHAR-VALUE_CHAR.
        ENDIF.
      ENDLOOP.
    ENDFORM.

  • Populate SELECT-OPTIONS default value using CALL FUNCTION

    Hi Experts,
    I would like to populate SELECT-OPTIONS s_currm default with value in w_currm, however, it doesn't seem to work.  Can you please advise what the correct syntax is.
    Note that CALL FUNCTION 'GET_CURRENT_YEAR' is working correctly and populating w_currm (as I can use it in a SQL SELECT statement), however, it does not seem to work for SELECT-OPTIONS s_currm.
    Thank you for your time.
    Code snippet is as a follows:
    REPORT  Z_DOWNLOAD_BSIS_TEST.
    *Data Declaration
    DATA: w_currm TYPE BSIS-MONAT.
    *Define current fiscal month
    CALL FUNCTION 'GET_CURRENT_YEAR'
      EXPORTING
        BUKRS         = 'X999'     " Company Code
        DATE          = SY-DATUM   " Date to find fiscal year for
      IMPORTING
        CURRM         = w_currm.   " Current Fiscal Month
    SELECT-OPTIONS s_currm FOR w_currm
                   DEFAULT w_currm. " The default value is NOT being populated (appears blank)

    Hi Venkat.O,
    Thank you for your clear response.  I have implemented your suggestion and it works, however, I now have a new problem. 
    Each time the report is executed or the "multiple selection" button is clicked the selection fields are populated once again with the default (low) values.
    For example, when report is first opened the s_curry field displays '2010'.  Clicking "multiple selection" results in another '2010' being populated.  After executing the report the selection screen is populated again with '2010' (so we now have '2010' listed 3 times in the s_curry field).
    How do I prevent the default values from repeating?
    REPORT  Z_DOWNLOAD_BSIS_TEST
    *Data Declaration
    DATA:  w_currm TYPE BSIS-MONAT,
           w_curry TYPE BSIS-GJAHR,
           w_prevm TYPE BSIS-MONAT,
           w_prevy TYPE BSIS-GJAHR.
    SELECTION-SCREEN BEGIN OF BLOCK b11 WITH FRAME TITLE text-001 .
    *Parameters to enter the path
    PARAMETERS: FILENAME(128) OBLIGATORY DEFAULT '/usr/sap/tmp/TEST.txt'
                             LOWER CASE.
    SELECT-OPTIONS: s_curry FOR w_curry,
                    s_currm FOR w_currm.
    SELECTION-SCREEN END OF BLOCK b11.
    AT SELECTION-SCREEN OUTPUT.
    *Define current/previous financial periods
    CALL FUNCTION 'GET_CURRENT_YEAR'
      EXPORTING
        BUKRS         = 'X999'     " Company Code
        DATE          = SY-DATUM   " Date to find fiscal year for
      IMPORTING
        CURRM         = w_currm    " Current Fiscal Month
        CURRY         = w_curry    " Current Fiscal Year
        PREVM         = w_prevm    " Previous Fiscal Month
        PREVY         = w_prevy.   " Previous Fiscal Year
        s_curry-low = w_curry.
        s_curry-option = 'EQ'.
        s_curry-sign = 'I'.
        APPEND s_curry.
        CLEAR  s_curry.
        s_currm-low = w_currm.
        s_currm-option = 'EQ'.
        s_currm-sign = 'I'.
        APPEND s_currm.
        CLEAR  s_currm.

Maybe you are looking for

  • [NEW] [IMAGES] Adding the ability to preview/live edit the source code.

    If the Muse Team added this, they could relax and not worry about adding so many other features. Sure, you can do this already in your browser. But it's not really a dynamically edit thing. Here, let me demonstrate. You could naviagate (or shortcut)

  • Adobe Flas?

    I want to watch television on sites like Hulu and Fancast but they require some sort of flash player. Adobe Flash isn't allowed so what is the Apple equivalent?

  • I don't want to BURN a CD, I just want to add a new song to the CD!

    Why can't I just add a new music purchase to the CD that already contains other iTunes music? I tried dragging the song to the Device, but nothing happens. If I click on Burn, I'm asked to insert a blank CD. I have a lot of room for more music on my

  • ACS 1121 to ISE migration

    Hello ALL, we have ACS 1121 and are planning to migrate to ISE let me know if its possible if yes what are the license  i need to buy

  • ICloud control panel freeze after applying settings

    Just installed iTunes 10.5 and iCloud control panel 1.0 on my Windows 7 64-bit computer. I am signed in with my Apple-ID but when I enable photo Stream and hit the Apply button the control panel freezes. I have restarted the computer wish resulted in