Select-options in CATS_DA using BAdI

How do you alter the selection screen options in CATS_DA?  I am using the CATS_REPORT BAdI and implemented a class ZCL_IM_CATS_REPORTING_01 using the interface IF_EX_CATS_REPORTING.
The documentation states that the methods GET_SELECTION_VALUE and SET_SELECTION_VALUE should be used in BEFORE_CATS_DATA_SELECTION, but I have not found any examples.
Points will be rewarded.

Hello Brian
Perhaps the following sample implementation gives you an idea how to influence the selection screen of transaction CATS_DA.
BAdI CATS_REPORTING -> implementation ZUS_SDN_CATS_REPORT -> implementing class ZCL_IM_US_SDN_CATS_REPORT -> implemented method IF_EX_CATS_REPORTING~LOAD_OF_PROGRAM :
METHOD if_ex_cats_reporting~load_of_program.
* define local data
**  data: ls_fieldsel   like line of im_report_manager->gt_modify_selscreen.
  DATA: ls_fieldsel   TYPE field_selection,
        ld_comp(30)   TYPE c,
        lo_obj        TYPE REF TO object.
  FIELD-SYMBOLS:
    <lt_modify_selscreen> TYPE HASHED TABLE. " of field_selection
                                             "with unique key mfeld.
  " NOTE: For a more detailed explanation of the following lines of coding see
  " ' Accessing the Inacessible - Local Classes within Global Classes'
  " https://wiki.sdn.sap.com/wiki/display/ABAP/Accessing+    _continued
  "        the+Inacessible+-+Local+Classes+within+Global+Classes
  lo_obj ?= im_report_manager.  " casting to generic root object !!!
  ld_comp = 'GT_MODIFY_SELSCREEN'.
  ASSIGN lo_obj->(ld_comp) TO <lt_modify_selscreen>.
  CHECK ( <lt_modify_selscreen> IS ASSIGNED ).
  " Hide selection field for personnel number
  CLEAR: ls_fieldsel.
  ls_fieldsel-mfeld   = 'PNPPERNR'. " personnel number
  ls_fieldsel-visible = abap_false.  " -> type-pool: ABAP
  INSERT ls_fieldsel INTO TABLE <lt_modify_selscreen>.
  " Make selection field for company code mandatory
  CLEAR: ls_fieldsel.
  ls_fieldsel-mfeld    = 'PNPBUKRS'. " company code
  ls_fieldsel-visible = abap_true.
  ls_fieldsel-required = abap_true.
  INSERT ls_fieldsel INTO TABLE <lt_modify_selscreen>.
  " Make selection field for cost center read-only
  CLEAR: ls_fieldsel.
  ls_fieldsel-mfeld    = 'PNPKOSTL'. " cost center
  ls_fieldsel-visible = abap_true.
  ls_fieldsel-readonly = abap_true.
  INSERT ls_fieldsel INTO TABLE <lt_modify_selscreen>.
ENDMETHOD.
" NOTE: Definintion of gt_modify_selscreen in include CATS_REPORT_MANAGER:
**  data: gt_modify_selscreen    type hashed table of field_selection
**                                    with unique key mfeld.
* Structure of FIELD_SELECTION:
**MFELD
**VISIBLE
**REQUIRED
**READONLY
Further reading:
[ Accessing the Inacessible - Local Classes within Global Classes|https://wiki.sdn.sap.com/wiki/display/ABAP/AccessingtheInacessible-LocalClasseswithinGlobalClasses]
Regards
   Uwe

Similar Messages

  • Checking against Select-Options with "CP" using "IF value IN select_option"

    Dear experts,
    first of all: I'm sorry, if this question already should have been asked and answered!
    I tried quite a lot of search terms but didn't find anything helpful.
    We are using a statement like "IF value IN select_option" to perform comparisons after the Select-Options have been used in a SELECT statement. This logical expression fails (compared to the results of the DB-SELECT) whenever a select-option line contains the option CP (Contains Pattern). To be more specific: The case sensitivity of the LOW value doesn't seem to play a role any more. A variable with the value 'ABCD' would be positively checked against a select-option with OPTION 'CP' and LOW 'abc*', whereas this value wouldn't have been selected if the select-option had been used in a DB-SELECT.
    Does anybody know a workaround?
    Thanks in advance
    Andreas

    Dear Keshav,
    it's an own field in an own table, defined as CHAR of length 140 (lowercase allowed), reflecting to a line of remittance info of an account statement. A regular Select-Option for this field is provided in a report which works perfectly fine regarding the case sensitivity. For reasons I don't want to point out in detail we need to check a value in this field against the select-option without selecting it from the db again.
    Let's assume that a field remittance_info contains the value 'ABCD'.
    A line of the select-option table looks like this:
    select_option_table-SIGN = 'I'
    select_option_table-OPTION = 'CP'
    select_option_table-LOW = 'abc*'.
    Then an ABAP statement such as
    IF remittance_info IN select_option_table.
    * would be true !!!
    ENDIF.
    but wouldn't deliver a result in a SELECT such as
    SELECT * FROM my_table INTO TABLE my_internal_table WHERE remittance_info IN select_option_table.
    because of the differences in lower/upper case.
    regards
    Andreas

  • Select option in time using oracle

    i attach an excel file in oracle, i have a time field in my table, i give the select option in time ie, i select the time 4:00:00 - 6:00:00 in that time period data will display,
    for example html format ie, output format.

    Hi
    No!
    U need to find a way to convert a range of select-option to a range for Native SQL, probably it should be better doesn't use a select-option for the date but two parameters: one for date from and one for date to.
    Max

  • 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.

  • SELECT-OPTIONS can u use it to read internal table ?????

    Hello All,
       I am trying to read an internal table with the select-options statement. I am getting a syntax error so i am hoping i am just coding it incorrectly. Can someone tell me what is wrong here is the if statement :
    if p_begdte in t_rpt-datab and
           p_enddte in t_rpt-datbi.
        else.
           exit.
        endif.
    thanks scott

    This is not working?
    tables: a916.
    * Beg valid date *
    data text021(29).
    selection-screen begin of line.
    selection-screen comment 1(30) text-021 for field p_begdte.
    selection-screen position 32.
    select-options: p_begdte for a916-datab default '20041101' to
    '99991231'.
    selection-screen end of line.
    * End valid date *
    data text022(29).
    selection-screen begin of line.
    selection-screen comment 1(30) text-022 for field p_enddte.
    selection-screen position 32.
    select-options: p_enddte for a916-datbi default '20041101' to
    '99991231'.
    selection-screen end of line.
    start-of-selection.
    <b>Loop at t_rpt.
    if t_rpt-datab in p_begdte
      and t_rpt-datbi in p_endte.
    * do something
    else.
    exit.
    endif
    Endloop.</b>
    Regards,
    Rich Heilman

  • Adding a field to free selection option in F110 using BTE 00001820

    Hello,
    I am trying to activate BTE 00001820 so i can add the user name field to the free selection prameters screen in F110.
    Did all the configuration in FIBF, creat a Z for the relevant function.
    I added a break point inside the function expecting to go inside it when i activate the free selection tab in F110.
    No matter what i do the function is not activated.
    I would appriciate your help with the issue.
    Thanks,
    Arnon.

    Hi,
    I think the option is not available.
    VVR

  • Personnel number in CATS_DA with BAdI

    I would like to fill the personnel number automaticly in transaction CATS_DA.
    Re: Select-options in CATS_DA using BAdI gave me some hints, but it's still not working the way it should.
    Does anyone has some example code for the method INITIALIZATION and how to pass values like PERNR?

    I would like to fill the personnel number automaticly in transaction CATS_DA.
    Re: Select-options in CATS_DA using BAdI gave me some hints, but it's still not working the way it should.
    Does anyone has some example code for the method INITIALIZATION and how to pass values like PERNR?

  • Using Select options how to validate

    Hi Experts,
    I am using webdynpro abap component select options.In select options i am using vbeln field i want to validate the entered value.How to validate it.Can give me for this solution is there any example provide me.

    Hi Chandra sekhar ,
    Can you give me the clear idea for validation.I have done initially in wddoinit
    method WDDOINIT .
    * Reference variable used instantiate the select-options component
    DATA
    lr_cmp_usage TYPE REF TO if_wd_component_usage.
    * Variables used to create the select-options fields and
    * define its initial values
    DATA:
    lr_field TYPE REF TO data.
    FIELD-SYMBOLS:
    <fs_field> TYPE ANY,
    <fs_range> TYPE INDEX TABLE.
    * Instantiate the select-options component
    lr_cmp_usage = wd_this->wd_cpuse_cmp_sel_opt( ).
    IF lr_cmp_usage->has_active_component( ) IS INITIAL.
    lr_cmp_usage->create_component( ).
    ENDIF.
    * Sets the helper reference
    wd_this->m_sel_opt = wd_this->wd_cpifc_cmp_sel_opt( ).
    wd_this->m_helper = wd_this->m_sel_opt->init_selection_screen( ).
    * Hide the standard select-options components.
    wd_this->m_helper->set_global_options(
    i_display_btn_cancel = abap_false
    i_display_btn_check = abap_false
    i_display_btn_reset = abap_false ).
    * Adding a block (type Tray) to the select-options
    wd_this->m_helper->add_block(
    i_id = `BL01`
    i_block_type = if_wd_select_options=>mc_block_type_tray
    i_title = `Flight Booking` ).
    * Adding a parameter field to the created block
    * Create a reference to the type of airline code
    CREATE DATA lr_field TYPE s_carr_id.
    * Sets the airline code initial value
    ASSIGN lr_field->* TO <fs_field>.
    <fs_field> = 'AA '.
    * Add the parameter to the group
    wd_this->m_helper->add_parameter_field(
    i_id = `CARRID`
    i_within_block = `BL01`
    i_value = lr_field ).
    FREE lr_field.
    UNASSIGN <fs_field>.
    * Adding a select-options field to the created block
    * Create a reference to the connection number range table
    lr_field = wd_this->m_helper->create_range_table( `S_CONN_ID` ).
    * Add the select-option to the group
    wd_this->m_helper->add_selection_field(
    i_id = `CONNID`
    i_within_block = `BL01`
    it_result = lr_field ).
    FREE lr_field.
    endmethod.
    and in button i have done as
    method ONACTIONON_EXECUTE .
      TYPES:
    lty_r_connid TYPE RANGE OF s_conn_id.
    DATA
    lr_sbook TYPE REF TO if_wd_context_node.
    * Variables used to retrieve the values of select-options fields
    DATA
    lt_sel_item TYPE if_wd_select_options=>tt_selection_screen_item.
    FIELD-SYMBOLS:
    <fs_sel_item> LIKE LINE OF lt_sel_item,
    <fs_carrid> TYPE s_carr_id,
    <fs_connid> TYPE lty_r_connid.
    * Get the selection-screen items
    wd_this->m_helper->get_selection_screen_items(
    IMPORTING et_selection_screen_items = lt_sel_item ).
    * Retrieve the values from the select-options items
    LOOP AT lt_sel_item ASSIGNING <fs_sel_item>.
    CASE <fs_sel_item>-m_id.
    WHEN `CARRID`.
    ASSIGN <fs_sel_item>-m_value->* TO <fs_carrid>.
    WHEN `CONNID`.
    ASSIGN <fs_sel_item>-mt_range_table->* TO <fs_connid>.
    ENDCASE.
    ENDLOOP.
    * Retrieve the data from the database, for simplicity, the
    * SELECT statement has been implemented here.
    SELECT * FROM sbook
    INTO TABLE wd_this->t_sbook
    WHERE carrid = <fs_carrid>
    AND connid IN <fs_connid>.
    * Bind the data to the context
    lr_sbook = wd_context->get_child_node( name = `T_SBOOK`).
    lr_sbook->bind_table( wd_this->t_sbook ).
    endmethod.
    now can you provide me the code for carrid and connid validation how has to be done.Please give me this solution

  • How to use read statement on a select options

    Hi all,
    I am trying to read the all the values on user selection screen select options.
    I have an internal table loaded with data.
    So while looping this internal table, I need to check the table certain tank field (lgort) against the select options tank values entered by user.
    It is fine when user uses the multiple values on the select options since I use the "READ" statement on the select options and get the matching values.
    Example: when user uses the multiple value selection on a select-options to enter values A554 and A555
    The select-options table will be:
    sign   option    low         high
    I          EQ       A554
    I          EQ       A555
    LOOP AT gt_output_location INTO gw_output.
      READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
        IF sy-subrc = 0.
        * append row to another table.
        ENDIF.
    ENDLOOP.
    Problem:
    Example: when user uses range on a select-options to enter values A554 and A555
    sign   option    low         high
    I          BT      A554       A555
    The read statement can only get matching value A554.  
    LOOP AT gt_output_location INTO gw_output.
      READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
        IF sy-subrc = 0.
        * append row to another table.
        ENDIF.
    ENDLOOP.
    Anyone have any idea on this?? Thanks!!

    Hi all, I need to consider each and every lines of the gt_output_location as there are other fields need to consider also. Basically I am checking each and every lines of this table to see which lines I need to append to another table.
    That is why I did not use  "LOOP AT gt_output_location INTO gw_output WHERE lgort IN s_lgort"
    The full gt_output_location:
    LOOP AT gt_output_location INTO gw_output.
    *      IF p_lgort = space AND p_umlgo = space.
           IF gv_lines_lgort = 0 AND gv_lines_umlgo = 0.
    *       only append those from tank <> to tank
             IF gw_output-lgort <> gw_output-umlgo.
               APPEND gw_output to gt_output.
               CLEAR gw_output.
             ELSE. "from tank == to tank
    *         append those from plant <> to plant
               IF gw_output-werks <> gw_output-umwrk.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ENDIF.
             ENDIF.
    *      ELSEIF p_lgort = space AND p_umlgo <> space.
           ELSEIF gv_lines_lgort = 0 AND gv_lines_umlgo > 0.
    *        IF gw_output-umlgo = p_umlgo.
             READ TABLE s_umlgo INTO gw_umlgo WITH KEY low = gw_output-umlgo.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
    *      ELSEIF p_umlgo = space AND p_lgort <> space.
           ELSEIF gv_lines_umlgo = 0 AND gv_lines_lgort > 0.
    *        IF gw_output-lgort = p_lgort.
             READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
           ELSE.
    *        IF gw_output-lgort = p_lgort AND gw_output-umlgo = p_umlgo.
             READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
             READ TABLE s_umlgo INTO gw_umlgo WITH KEY low = gw_output-umlgo.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
           ENDIF.
           CLEAR gw_lgort.
           CLEAR gw_umlgo.
         ENDLOOP.

  • Report text element as selection option

    Hi,
      I encounter a performance problem in a report program that include a self define fields in the selection option.  I use the FM READ_TEXT to read those fields and compare with the user input.Then, eliminates those unmatched records with if else statement.
    Here is my code:
    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.

    Hi,
    i found one perfromance issue, try to remove the "INTO CORRESPONDING FIELDS OF TABLE " in your select statement, the order of the fields that you are fetching and the oreder for the fields in your internal table structure should be same, then you can remove "INTO CORRESPONDING FIELDS OF TABLE " and while fetching the fields reffer the table and fields you need to fetch here also you need to main the same order...like you have to do the same in where condition.
    Reward if needful.
    Thanks,
    Sreeram.

  • SELECT-OPTIONS for variables that cannot have a range

    Hi all,
    There is an option to show only one input-field for a select-options declaration by using the 'no intervals' option. But it is still possible for the user to specify ranges when doing multiple selections (i.e. specify intervals for the variable).
    However, if I have a variable that implicitly does not have ranges, (e.g. 'Arjun' TO 'Shankar' makes no sense at all), I want to let the user do multiple selections for it, without allowing him/her to enter ranges for it.
    Can I do this in a selection screen in any way (even if it involves not using select-options)? And if yes, how?

    Use this:
    SELECT-OPTIONS xxxx FOR yyyy NO INTERVALS
                                               NO-EXTENSION.

  • Set Parameter id is not working in case of select-options

    Hi,
    i am using the below code to get the SWIA first field fill with some data which i am getting by logic written..but its not getting filled since in tcode the first input box is select-options not a parameter..if it would have been a parameter than my logic would have worked finest. so kindly suggest what to do now in case of select-options.
    form user_command  using p_ucomm    type sy-ucomm
                             p_selfield type slis_selfield.
      data : wi type sww_wiid .
      clear : wi .
      read table it_final into wa_final index p_selfield-tabindex.
      if sy-subrc = 0.
        check ( wa_final-wi_id is not initial ).
        wi = wa_final-wi_id .
        case p_ucomm.
          when '&IC1'.
            set parameter id 'WID' field wi.
            call transaction 'SWIA'and skip first screen.
        endcase.
      endif.
    endform.
    Regards,
    HiM

    ThanQ..i got you totally..thanks to remind
    Regards,
    HiM

  • Select-Options in Webdynpro for Abap with onAction

    Hello,
    I need your help. I have a Webdynpro with 6 Select-Options. I used a button to start the selection. Can the Selection be started with return key.
    Thanks.

    I would expect in any case that there is no problem when you transport WDA build from ehp3 to ehp5 (Backward compatibility ).

  • Select-options in display mode

    Hi
    How to set the SELECT-OPTIONS in display mode by default
    regards
    Srinivas

    hiii
    for every LOW and HIGH value of select option you can use a code like given below..
    First initialize your select option with some values then use following code
    AT SELECTION-SCREEN OUTPUT .
      IF s_docno IS NOT INITIAL .
        LOOP AT SCREEN.
          IF screen-name CS 's_docno'.
           screen-input = 0.
            MODIFY SCREEN.
          ENDIF.                           " IF screen-name CS 'p_docno'.
        ENDLOOP.                           " LOOP AT SCREEN.
    regards
    twinkal

  • How to hide the select-options fields on radiobutton select in webdynpro

    hi
    Could you please help how to hide the select-option fields in webdynpro
    there are four radio buttons
    for every radiobutton there is corresponding the select_option filed is associated to it
    user as only provision select  one radio button and reset of the select-option fileds should be hidden
    which ever the radio button is selected corresponding the select-options fileld should be displayed
    please find the attachement below

    Hi Nine,
    To hide select options you should use interface method REMOVE_SELECTION_SCREEN_ITEM of IF_WD_SELECT_OPTIONS.
    Sample code :
    Write the below code in the Event handler of Radio Button.
    DATA lv_r_helper_class TYPE REF TO if_wd_select_options.
    lv_r_helper_class = lo_interfacecontroller->init_selection_screen(
    lv_r_helper_Class->REMOVE_SELECTION_SCREEN_ITEM(exporting i_id = 'Select_option1_id1').
    This will hide first select option of your screen.Similarly pass select_option_id2 to hide it and so on.
    Regards,
    Ravikiran.k

Maybe you are looking for