FM FREE_SELECTIONS_DIALOG

I would like the screen that is produced by the FM FREE_SELECTIONS_DIALOG integrated on my selection screen as a subscreen below the input parameters.  AS_SUBSCREEN parameter of this FM doesn't work as I expect it. AS_WINDOW parameter of FM covers-up original sel. scn, even when setting start_row/start_col.  Any suggestion?
Your help is greatly appreciated.
Kind Regards,
Jason
Message was edited by:
        Jason DeLuca

Hi,
The above requirement is not possible without using logical database.
The reason is that the compiler identifies the below syntax only inside a LDB program .
SELECTION-SCREEN DYNAMIC SELECTIONS
                 FOR {NODE|TABLE} node [ID id].
The above syntax creates a subscreen container on the standard selection screen of the program during generation
and we are able to view the dynamic selections icon on the selection screen.
Hence it is not possible to use the FM 'FREE_SELECTIONS_DIALOG' as a subscreen without using a
logical database of the relevant table.
However if you dont want to create a new LDB for each table, there is a trick which needs to be performed
once in your SAP system and all custom programs can use this FM to create a dynamic selection screen
as a subscreen of the standard selection screen.
The prerequisite steps are as follows:
1: Create a dummy  / test database table in SE11 with a single field i.e. for example mandt , matnr
2: Create a new logical database program for this table in SE36. Save and activate.
This will create dynamic selections for the fields of the table created in step 1.
Steps to be followed in the required custom ABAP program to create the dynamic selection screen as a subscreen.
A: Include the LDB program created in step 2, in the attributes of the custom ABAP program.
Now when you execute the program, you can see the dynamic selection icon for the dummy table created in step 1.
B: In your custom program we need to suppress the icon for 'Dynamic Selections' from the standard selection screen.
   We need to perform this action, because the 'Dynamic Selections' icon always triggers a call to the
   dynamic selection screen of the included LDB progam. ( In our case a dummy table created in step 1 ).
   Whereas we want to trigger a call of the dynamic selection screen of our desired table.
   Logic is as follows:
   In 'AT SELECTION-SCREEN OUTPUT' event call the FM RS_SET_SELSCREEN_STATUS to exclude the fcode 'DYNS'.
C: Add a pushbutton / checkbox on your selection screen to trigger a call to the FM 'FREE_SELECTIONS_INIT' &
   'FREE_SELECTIONS_DIALOG' in the 'AT SELECTION-SCREEN' event.
D: When the user clicks the pushbutton / checkbox for dynamic selections call the above 2 FM for the desired table
    with the AS_SUBSCREEN flag of FREE_SELECTIONS_DIALOG = 'X'
Result: Your dynamic selections screen will be created as a subscreen of the standard selection screen and not as a pop-up.
Advantage: With the creation of the single custom table & LDB, you are now able to create dynamic selections as subscreen
in any program in the system. All we need to do is follow the steps A, B & C in each program.
Note: Your other restrictions with dynamic selection screen ie. submit in background , save as variant still remain and
you need to handle them accordingly.
let me know if you need sample code.
Regards,
Bhawit Kumar

Similar Messages

  • FREE_SELECTIONS_DIALOG in a Tabstrip

    Dear Experts,
    I have been searching for help, but I couldn't find any helpful discussion so far.
    I know we can generate full screen or popup screen using FREE_SELECTIONS_INIT and FREE_SELECTIONS_DIALOG.
    My question:
    Is it possible to generate dynamic section screen using FREE_SELECTIONS_INIT and FREE_SELECTIONS_DIALOG in a Selection screen tab strip.
    If yes, could you please provide sample code?
    Regards,
    Mohan

    any help..

  • No-Extension in function FREE_SELECTIONS_DIALOG

    Hi Gurus!
    We need to generate a dynamic screen without intervals and without extension for the selection fields. We use FREE_SELECTIONS_DIALOG, but we do not know how we can obtain no extension propierty.
    Thanks

    Hi Gurus!
    We need to generate a dynamic screen without intervals and without extension for the selection fields. We use FREE_SELECTIONS_DIALOG, but we do not know how we can obtain no extension propierty.
    Thanks

  • Job scheduling(passing the values to the child program)

    when i'm trying to schedule a background job(using job_open job_submit and job_close) i'm passing the values of the selection screen(parent program) to my child program using set parameter id. And trying to get the values using get parameter id in the cild program.
    But the values of the parent program are not being passed to the child program what may be the cause for it?

    rathan,
    Why con't you use
    SUBMIT... [VIA SELECTION-SCREEN]
    [USING SELECTION-SET <var>]
    [WITH <sel> <criterion>]
    [WITH FREE SELECTIONS <freesel>]
    [WITH SELECTION-TABLE <rspar>].
    When you start an executable program, the standard selection screen normally appears, containing the selection criteria and parameters of both the logical database connected to the program and of the program itself (see Direct Execution - Reports). When you start an executable program using SUBMIT, there are various additions that you can use to fill the input fields on the selection screen:
    SUBMIT... [VIA SELECTION-SCREEN]
    [USING SELECTION-SET <var>]
    [WITH <sel> <criterion>]
    [WITH FREE SELECTIONS <freesel>]
    [WITH SELECTION-TABLE <rspar>].
    These options have the following effects:
    VIA SELECTION-SCREEN
    The selection screen of the called executable program (report) appears. If you transfer values to the program using one or more of the other options, the corresponding input fields in the selections screen are filled. The user can change these values. By default, the system does not display a selection screen after SUBMIT.
    USING SELECTION-SET <var>
    This option tells the system to start the called program with the variant <var>.
    WITH <sel> <criterion>
    Use this option to fill individual elements <sel> of the selection screen (selection tables and parameters). Use one of the elements <criterion>:
    <op> <f> [SIGN <s>], for single value selection
    If <sel> is a selection criterion, use <op> to fill the OPTION field, <f> to fill the LOW field, and <s> to fill the SIGN field of the selection table <sel> in the called program.
    If <sel> is a parameter, you can use any operator for <op>. The parameter <sel> is always filled with <f>.
    [NOT] BETWEEN <f1> AND <f2> [SIGN <s>], for interval selection
    <f1> is transferred into the LOW field, <f2> into the HIGH field, and <s> into the SIGN field of the selection table <sel> in the called program. If you omit the NOT option, the system places the value BT into the OPTION field; if you use NOT, the system fills OPTION with NB.
    IN <seltab>, transferring a selection table
    This addition fills the selection table <sel> in the called program with the values of the table <seltab> in the calling program. Table <seltab> must have the structure of a selection table. Use the RANGES statement to create selection tables.
    WITH FREE SELECTION <freesel>, user dialog for dynamic selections
    To use this option, the called program must be connected to a logical database that supports dynamic selections. In the calling program, use the function modules FREE_SELECTIONS_INIT and FREE_SELECTIONS_DIALOG. They allow the user to enter dynamic selections on a selection screen. One export parameter of these function modules has structure RSDS_TEXPR from the RSDS type group. Transfer the values of this export parameter by means of the internal table <freesel> of the same structure to the called report.
    WITH SELECTION-TABLE <rspar>, dynamic transfer of values
    You need an internal table <rspar> with the Dictionary structure RSPARAMS. The table then consists of the following six fields:
    SELNAME (type C, length 8) for the name of the selection criterion or parameter
    KIND (type C, length 1) for the selection type (S for selection criterion, P for parameter)
    SIGN, OPTION, LOW, HIGH as in a normal selection table, except that LOW and HIGH both have type C and length 45.
    This table can be filled dynamically in the calling program with all of the required values for the selection screen of the called program. If the name of a selection criterion appears more than once, the system creates a multiple-line selection table for that criterion in the called program. If the name of a parameter appears more than once, the system uses the last value. Note that LOW and HIGH have type C, so that the system executes type conversions to the criteria of the called program. This is important for date fields, for example. Before your program is used in a live context, you should check it using the VIA SELECTION-SCREEN addition.
    Except for WITH SELECTION-TABLE, you can use any of the above options several times and in any combination within a SUBMIT statement. In particular, you can use the WITH <sel> option several times for one single criterion <sel>. In the called program, the system appends the corresponding lines to the selection tables used. For parameters, it uses the last value specified. The only combination possible for the WITH SELECTION-TABLE option is USING SELECTION-SET.
    If the input fields on the selection screen are linked to SPA/GPA parameters, you can also use this technique to pass values to the selection screen (see Passing Data Between Programs).
    The following executable program (report) creates a selection screen containing the parameter PARAMET and the selection criterion SELECTO:
    REPORT  demo_program_submit_rep1.
    DATA number TYPE i.
    PARAMETERS      paramet(14) TYPE c.
    SELECT-OPTIONS  selecto FOR number.
    The program DEMO_PROGRAM_SUBMIT_REP1 is called by the following program using various parameters:
    REPORT demo_program_submit_sel_screen NO STANDARD PAGE HEADING.
    DATA: int TYPE i,
          rspar TYPE TABLE OF rsparams,
          wa_rspar LIKE LINE OF rspar.
    RANGES seltab FOR int.
    WRITE: 'Select a Selection!',
    SKIP.
    FORMAT HOTSPOT COLOR 5 INVERSE ON.
    WRITE: 'Selection 1',
         / 'Selection 2'.
    AT LINE-SELECTION.
      CASE sy-lilli.
        WHEN 4.
          seltab-sign = 'I'. seltab-option = 'BT'.
          seltab-low  = 1.   seltab-high   = 5.
          APPEND seltab.
          SUBMIT demo_program_submit_rep1 VIA SELECTION-SCREEN
                          WITH paramet eq 'Selection 1'
                          WITH selecto IN seltab
                          WITH selecto ne 3
                          AND RETURN.
        WHEN 5.
          wa_rspar-selname = 'SELECTO'. wa_rspar-kind = 'S'.
          wa_rspar-sign = 'E'. wa_rspar-option = 'BT'.
          wa_rspar-low  = 14.  wa_rspar-high = 17.
          APPEND wa_rspar TO rspar.
          wa_rspar-selname = 'PARAMET'. wa_rspar-kind = 'P'.
          wa_rspar-low  = 'Selection 2'.
          APPEND wa_rspar TO rspar.
          wa_rspar-selname = 'SELECTO'. wa_rspar-kind = 'S'.
          wa_rspar-sign = 'I'. wa_rspar-option = 'GT'.
          wa_rspar-low  = 10.
          APPEND wa_rspar TO rspar.
          SUBMIT demo_program_submit_rep1 VIA SELECTION-SCREEN
                          WITH SELECTION-TABLE rspar
                          AND RETURN.
      ENDCASE.
    Pls. reward if useful...

  • How to create the selection screen dynamically

    Hi,
    I have a requirement to create the selection screen Dynamically. All the fields that should appear on the selection screen will be available in a custom table. So, based on the entries available in the Z tables, the selection screen should be built. Eg. If there are 10 records available in the Z table, the selection screen should consist of 10 fields. If there are 100 entries, the Selection screen should contain 100 fields. and the logic to build this selection screen should be carried out dynamically in the program.
    Could anyone of you please share the valuable inputs on this. If anyone has the sample code to do this, please share.
    Thanks in advance.
    Regards,
    Paddu.

    Hi,
    Kindly go through this sample program below:
    DEMO_LIST_FORMAT_INPUT *and
    check this function module:
    FREE_SELECTIONS_DIALOG *.
    Hope it helps
    Regards
    Mansi

  • Is it possible to create Table Controls(in Dynpro) dynamically

    HI All
    I am not sure if we can create screen elements dynamically especially Table Controls. I need to create a Table control in a custom screen but the fields/columns in the table control are known at run time. Is it possible?? Appreciate any light on this subject.
    Thanks
    Van

    hi
    ccheck for the link
    Check following link for the same.
    https://www.sdn.sap.com/sdn/collaboration.sdn?contenttype=url&content=https%3A//forums.sdn.sap.com/thread.jspa%3FforumID%3D52%26threadID%3D45079%26messageID%3D459011%23459011
    also take a look at the FM
    take a look at FM:
    FREE_SELECTIONS_INIT
    FREE_SELECTIONS_DIALOG
    hope will be helpfull to you.
    regards
    vijay
    <u><b>plz reward pts if helpful</b></u>

  • How can i decleare select-options in module pool table control?

    Hi everybody!!
    Can anyone tell me how can I decleare select-options in module pool table control screen?. I have declared it in a screen with a table control but a dump is triggered due to an error when generating the selection screen.
    Regards...

    My suggestion will be try to use fm
        call function 'FREE_SELECTIONS_DIALOG'
    Please search this forum you can find lot of threads related to this.

  • Reg. Creation of table dynamically

    Hi Experts,
    While creating a table dynamically some of the fields in it_lvc_cat are Integer but the created table (new_table) contains all the fields as character. Is there any possibility of changing the datatype as interger for required fields.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_lvc_cat
        IMPORTING
          ep_table        = new_table.
    Regards,
    Vijay.

    Hi,
    Refer this code:
    REPORT zmtable LINE-SIZE 255
                   LINE-COUNT 65.
    Program written by Vijay Chaitanya Raju
    Maintain Table dynamicly (Table name is entered on Selection Screen)
    Very powerfull program. Please maintain authorisation access and
    restrict maintenance to Z-tables
    Version 6.20 and up
    (can be used in 4.6C with some modifications to block try - endtry
    and classes)
    Enhanced functionality with dynamic selection screen
    TABLES: sscrfields.                "Fields on selection screens
    TYPE-POOLS rsds.
    DATA ds_clauses TYPE rsds_where.
    DATA: BEGIN OF ifield OCCURS 0,
          fieldname LIKE dd03l-fieldname,
          position  LIKE dd03l-position,
          keyflag   LIKE dd03l-keyflag,
          datatype  LIKE dd03l-datatype.
    DATA: END OF ifield.
    DATA: sl_step    LIKE sy-tabix,
          ss_step    LIKE sy-subrc,
          ss_act(1)  TYPE c,
          sl_lines   LIKE sy-tfill,
          sl_status  LIKE sy-subrc,
          sl_subrc   LIKE sy-subrc,
          sl_update(1) TYPE c,
          sl_mandt(1)  TYPE c,
          len(6)       TYPE n,
          f_value(255) TYPE c,
          sl_datum     LIKE sy-datum,
          sl_uzeit     LIKE sy-uzeit,
          price1(15)   TYPE c,
          price2(15)   TYPE c,
          mess(60)     TYPE c,
          d_stat   LIKE sy-subrc,
          m_stat   LIKE sy-subrc,
          slchar(6) TYPE c.
    DATA: ref_ptr TYPE REF TO cx_root.      "Root class more common
    DATA: text TYPE string.
    DATA: sl_index LIKE sy-tabix.
    DATA: zauth LIKE dd02l-tabname.
    DATA: num TYPE i,
          max_len TYPE i,
          check_len TYPE i,
          sl_sel(1) TYPE c.
    TYPE-POOLS: icon.
    SELECTION-SCREEN.
    SELECTION-SCREEN BEGIN OF LINE.
    text-012 - 'Table Name'
    SELECTION-SCREEN COMMENT 1(25) text-012.
    PARAMETERS: tabname LIKE dd02l-tabname DEFAULT 'ZSCARE'.
    text-003 - 'Selection'
    SELECTION-SCREEN PUSHBUTTON 75(9) text-003 USER-COMMAND sta1.
    SELECTION-SCREEN END OF LINE.
    numrows(text) - 'Max Number of ROWS'
    PARAMETERS: numrows LIKE sy-subrc DEFAULT '100'.
    At Selection-Screen                                                 *
    AT SELECTION-SCREEN.
      CASE sscrfields-ucomm.
        WHEN 'STA1'.
          CLEAR sl_sel.
          CALL FUNCTION 'ZSTAN_SELECTIONS'
            EXPORTING
              tabname         = tabname
            IMPORTING
              ds_clauses      = ds_clauses
            EXCEPTIONS
              table_not_valid = 1
              other_error     = 2
              OTHERS          = 3.
          IF sy-subrc = 0.
            sl_sel = 'X'.
          ENDIF.
      ENDCASE.
    *At Selection-Screen Output                                            *
    AT SELECTION-SCREEN OUTPUT.
      SELECT SINGLE tabname
        INTO tabname
        FROM dd02l
        WHERE tabname  = tabname
          AND as4local = 'A'
          AND ( tabclass = 'TRANSP' OR tabclass = 'POOL'
                OR tabclass = 'CLUSTER' ).
      IF sy-subrc <> 0.
        MESSAGE 'Table is not valid' TYPE 'S'.
        RETURN.
      ENDIF.
    START-OF-SELECTION.
    START-OF-SELECTION.
      DEFINE: acheck.
        zauth = 'ZTABAUTH'.
        select single statu
          into sl_update
          from (zauth)
          where tabname = tabname
            and bname   = sy-uname.
        if sy-subrc <> 0.
          message 'You are not authorized to view this table' type 'S'.
          return.
        endif.
      END-OF-DEFINITION.
      SELECT SINGLE tabname
        INTO tabname
        FROM dd02l
        WHERE tabname  = tabname
          AND as4local = 'A'
          AND ( tabclass = 'TRANSP' OR tabclass = 'POOL'
                OR tabclass = 'CLUSTER' ).
      IF sy-subrc <> 0.
        MESSAGE 'Table is not valid' TYPE 'S'.
        RETURN.
      ENDIF.
      DATA: ptr_itab TYPE REF TO data.
      FIELD-SYMBOLS: <fs_itab> TYPE STANDARD TABLE. "ANY TABLE.
      CREATE DATA ptr_itab TYPE STANDARD TABLE OF (tabname).
      ASSIGN ptr_itab->* TO <fs_itab>.
    For DELETION
      DATA: ptr_itd TYPE REF TO data.
      FIELD-SYMBOLS: <fs_itd> TYPE STANDARD TABLE.
      CREATE DATA ptr_itd TYPE STANDARD TABLE OF (tabname).
      ASSIGN ptr_itd->* TO <fs_itd>.
    For MODIFICATION
      DATA: ptr_itm TYPE REF TO data.
      FIELD-SYMBOLS: <fs_itm> TYPE STANDARD TABLE.
      CREATE DATA ptr_itm TYPE STANDARD TABLE OF (tabname).
      ASSIGN ptr_itm->* TO <fs_itm>.
      DATA: ptr_wtab TYPE REF TO data.
      FIELD-SYMBOLS: <fs_wtab> TYPE ANY.
      CREATE DATA ptr_wtab TYPE (tabname).
      ASSIGN ptr_wtab->* TO <fs_wtab>.
      DATA: itabname(15) TYPE c.
      itabname = '<fs_wtab>'.
    Standard list status with 'SAVE' button
      SET PF-STATUS 'STLI'.
      CLEAR sl_update.
    Maintain authorisation access in table ZTABAUTH
    Key fields:  tabname - Table name
                 bname   = sy-uname - User name
                 statu   = 'X' - maintain
                           ' ' - view
    Check authorisation access
      acheck.
      SELECT fieldname position keyflag datatype
        INTO TABLE ifield
        FROM dd03l
        WHERE tabname = tabname
          AND fieldname NOT LIKE '.INCLU%'
        ORDER BY position.
      FIELD-SYMBOLS: <f1> TYPE ANY.
      DATA: tab_field(60) TYPE c,
            sline LIKE sy-lisel.
      DATA: field_attr LIKE dfies.
      DATA: BEGIN OF tfield_attr OCCURS 0.
              INCLUDE STRUCTURE field_attr.
      DATA: END OF tfield_attr.
      LOOP AT ifield.
        CALL FUNCTION 'G_FIELD_READ'
          EXPORTING
            table      = tabname
            fieldname  = ifield-fieldname
            text_flag  = 'X'
          IMPORTING
            field_attr = field_attr.
        tfield_attr = field_attr.
        APPEND tfield_attr.
      ENDLOOP.
      IF sl_sel = 'X'.
        SELECT *
          FROM (tabname)
          INTO TABLE <fs_itab> UP TO numrows ROWS
          WHERE (ds_clauses-where_tab).
      ELSE.
        SELECT *
          FROM (tabname)
          INTO TABLE <fs_itab> UP TO numrows ROWS.
      ENDIF.
      DESCRIBE TABLE <fs_itab> LINES sl_lines.
    Show two extra lines to allow addition up to 2 new lines
      IF sl_update = 'X'.
        DO 2 TIMES.
          APPEND INITIAL LINE TO <fs_itab>.
        ENDDO.
      ENDIF.
      DATA: info(22) VALUE 'D - Delete, M - Modify'.
      WRITE: / icon_information AS ICON QUICKINFO info.
      WRITE ' '.
      CLEAR check_len.
      LOOP AT tfield_attr.
        IF tfield_attr-datatype = 'CLNT'.
          CONTINUE.
        ENDIF.
        len = tfield_attr-outputlen.
        IF tfield_attr-keyflag = 'X'.
          check_len = check_len + len + 1.
        ENDIF.
        IF tfield_attr-scrtext_m IS NOT INITIAL.
          WRITE: AT (len) tfield_attr-scrtext_m COLOR 1.
        ELSE.
          WRITE: AT (len) tfield_attr-fieldtext COLOR 1.
        ENDIF.
      ENDLOOP.
      CLEAR ss_step.
      CLEAR ss_act.
      LOOP AT <fs_itab> INTO <fs_wtab>.
        IF sy-tabix LE sl_lines.
          ss_step = 1.
        ELSE.
          CLEAR ss_step.
        ENDIF.
    In field SS_STEP put D -  to delete record
                         M -  to modify/add new record
        IF sl_update = 'X'.
          WRITE:/ icon_change AS ICON.
          IF ss_step = 1.
            WRITE:  ss_act INPUT ON.
          ELSE.
            ss_act = 'M'.
            WRITE:  ss_act.
            CLEAR ss_act.
          ENDIF.
        ELSE.
          WRITE:/ icon_display AS ICON.
          WRITE:  ss_act COLOR 2.
        ENDIF.
        LOOP AT ifield.
    Maintain client dependant tables in the same client
          IF ifield-datatype = 'CLNT'.
            sl_mandt = 'X'.
            CONTINUE.
          ENDIF.
          CONCATENATE itabname '-' ifield-fieldname INTO tab_field.
          ASSIGN (tab_field) TO <f1>.
          IF sl_update = 'X'.
            IF ifield-keyflag = 'X' AND ss_step IS NOT INITIAL.
              WRITE: <f1> COLOR 4.
            ELSE.
              WRITE: <f1> INPUT ON.
            ENDIF.
          ELSE.
            IF ifield-keyflag = 'X' AND ss_step IS NOT INITIAL.
              WRITE: <f1> COLOR 4.
            ELSE.
              WRITE: <f1> COLOR 2.
            ENDIF.
          ENDIF.
          UNASSIGN <f1>.
        ENDLOOP.
      ENDLOOP.
    END-OF-SELECTION.
    END-OF-SELECTION.
    AT USER-COMMAND.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'SAVE'.
          IF sl_update = 'X'.
            CLEAR: sl_step,
                   sl_status,
                   sl_subrc,
                   <fs_wtab>,
                   d_stat,
                   m_stat,
                   max_len.
            REFRESH <fs_itd>.
            REFRESH <fs_itm>.
            DO.
              IF sl_status <> 0.
                EXIT.
              ENDIF.
              ADD 1 TO sl_step.
              IF sl_subrc <> 0.
                EXIT.
              ENDIF.
              CLEAR ss_step.
              CLEAR ss_act.
              READ LINE sl_step
                   FIELD VALUE ss_act INTO f_value.
              sl_subrc = sy-subrc.
              IF f_value(1) EQ 'D' OR f_value(1) = 'd'.
                ss_step = 1.  "Delete
              ELSEIF f_value(1) EQ 'M' OR f_value(1) = 'm'.
                ss_step = 2.  "Modify
              ELSE.
                CLEAR ss_step.
              ENDIF.
              CHECK sy-lisel(3) = '0Z '.
              IF ss_step GT 0.
                CLEAR sline.
                sline = sy-lisel+5(250).
                max_len = 250.
                CHECK sline(check_len) <> ' '.
                LOOP AT tfield_attr.
                  CONCATENATE itabname '-' tfield_attr-fieldname
                                                  INTO tab_field.
                  ASSIGN (tab_field) TO <f1>.
                  IF tfield_attr-fieldname = 'MANDT'.
                    <f1> = sy-mandt.
                  ELSE.
                    CLEAR f_value.
                    IF max_len LT tfield_attr-outputlen.
                      max_len = 255.
                      ADD 1 TO sl_step.
                      READ LINE sl_step.
                      sline = sy-lisel.
                    ENDIF.
                    f_value = sline(tfield_attr-outputlen).
                    max_len = max_len - tfield_attr-outputlen - 1.
                    IF tfield_attr-inttype = 'D'.
                      IF f_value CO ' 0./-'.
                        CLEAR sl_datum.
                        <f1> = sl_datum.
                      ELSE.
                        CALL FUNCTION 'CONVERT_DATE_INPUT'
                          EXPORTING
                            input                     = f_value
                            plausibility_check        = 'X'
                          IMPORTING
                            output                    = sl_datum
                          EXCEPTIONS
                            plausibility_check_failed = 1
                            wrong_format_in_input     = 2
                            OTHERS                    = 3.
                        IF sy-subrc = 0.
                          <f1> = sl_datum.
                        ELSE.
                          text = 'Invalid Date'.
                          sl_status = 1.
                          EXIT.
                        ENDIF.
                      ENDIF.
                    ELSEIF tfield_attr-inttype = 'T'.
                      IF f_value CO ' 0:'.
                        CLEAR sl_uzeit.
                        <f1> = sl_uzeit.
                      ELSE.
                        CALL FUNCTION 'CONVERT_TIME_INPUT'
                          EXPORTING
                            input                     = f_value
                            plausibility_check        = 'X'
                          IMPORTING
                            output                    = sl_uzeit
                          EXCEPTIONS
                            plausibility_check_failed = 1
                            wrong_format_in_input     = 2
                            OTHERS                    = 3.
                        IF sy-subrc = 0.
                          <f1> = sl_uzeit.
                        ELSE.
                          text = 'Invalid Time'.
                          sl_status = 1.
                          EXIT.
                        ENDIF.
                      ENDIF.
                    ELSEIF tfield_attr-inttype = 'C'.
                      TRANSLATE f_value TO UPPER CASE.
                      <f1> = f_value.
                    ELSE.
                      TRANSLATE f_value USING ', '.
                      CONDENSE f_value NO-GAPS.
                      TRY.
                          <f1> = f_value.
                        CATCH cx_root INTO ref_ptr.
                          text = ref_ptr->get_text( ).
                          sl_status = 1.
                          EXIT.
                      ENDTRY.
                    ENDIF.
                    SHIFT sline BY tfield_attr-outputlen PLACES.
                    SHIFT sline LEFT.
                  ENDIF.
                  UNASSIGN <f1>.
                ENDLOOP.
                IF sl_status = 0.
                  CASE ss_step.
                    WHEN 1.  "Delete
                      ADD 1 TO d_stat.
                      APPEND <fs_wtab> TO <fs_itd>.
                    WHEN 2.  "Modify
                      ADD 1 TO m_stat.
                      APPEND <fs_wtab> TO <fs_itm>.
                  ENDCASE.
                ENDIF.
              ENDIF.
            ENDDO.
            IF sl_status = 0.
              IF d_stat IS NOT INITIAL.
                slchar = d_stat.
                CONCATENATE 'Deleted -' slchar 'record.' INTO text
                  SEPARATED BY space.
                DELETE (tabname) FROM TABLE <fs_itd>.
              ENDIF.
              IF m_stat IS NOT INITIAL.
                slchar = m_stat.
                CONCATENATE text 'Modified -' slchar 'record.' INTO text
                  SEPARATED BY space.
                MODIFY (tabname) FROM TABLE <fs_itm>.
              ENDIF.
              IF d_stat IS INITIAL AND m_stat IS INITIAL.
                MESSAGE 'No changes were done' TYPE 'S'.
              ELSE.
                MESSAGE text TYPE 'S'.
              ENDIF.
              LEAVE.
            ELSE.
              MESSAGE text TYPE 'I'.
              EXIT.
            ENDIF.
          ELSE.
            LEAVE.
          ENDIF.
      ENDCASE.
    *--END--
    Below is Function for a Dynamic Selection Screen
    FUNCTION zstan_selections.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(TABNAME) LIKE  DD02L-TABNAME DEFAULT 'ZSCARE'
    *"  EXPORTING
    *"     VALUE(DS_CLAUSES) TYPE  RSDS_WHERE
    *"  EXCEPTIONS
    *"      TABLE_NOT_VALID
    *"      OTHER_ERROR
      DATA texpr TYPE rsds_texpr.
      DATA twhere TYPE rsds_twhere.
      DATA trange TYPE rsds_trange.
      DATA BEGIN OF qcat.                    "Selections View for
              INCLUDE STRUCTURE rsdsqcat.    "Free Selectoptions
      DATA END OF qcat.
      DATA BEGIN OF tabs OCCURS 10.
              INCLUDE STRUCTURE rsdstabs.
      DATA END   OF tabs.
      DATA BEGIN OF fields OCCURS 10.
              INCLUDE STRUCTURE rsdsfields.
      DATA END   OF fields.
      DATA BEGIN OF efields OCCURS 10.
              INCLUDE STRUCTURE rsdsfields.
      DATA END   OF efields.
      DATA selid LIKE rsdynsel-selid.
      DATA actnum LIKE sy-tfill.
      DATA title LIKE sy-title VALUE 'Selection Screen'.
      DATA: maxnum LIKE sy-subrc VALUE '69'.
      CLEAR    tabs.
      tabs-prim_tab = tabname.
      COLLECT  tabs.
      DATA: position LIKE dd03l-position.
      DATA: keyflag  LIKE dd03l-keyflag.
      CLEAR fields.
      fields-tablename = tabname.
      fields-sign      = 'I'.
      DATA: step LIKE sy-subrc.
      SELECT fieldname keyflag position
        INTO (fields-fieldname, keyflag, position)
        FROM dd03l
        WHERE tabname = tabname
          AND fieldname NOT LIKE '.INCLU%'
          AND datatype NE 'CLNT'
        ORDER BY position.
        ADD 1 TO step.
        CHECK step LE maxnum.
        IF keyflag <> 'X'.
          efields = fields.
          APPEND efields.
        ENDIF.
        APPEND fields.
      ENDSELECT.
      IF sy-subrc <> 0.
        RAISE table_not_valid.
      ENDIF.
      CALL FUNCTION 'FREE_SELECTIONS_INIT'
        EXPORTING
          expressions              = texpr
          kind                     = 'F'
        IMPORTING
          selection_id             = selid
          expressions              = texpr
          where_clauses            = twhere
          field_ranges             = trange
          number_of_active_fields  = actnum
        TABLES
          tables_tab               = tabs
          fields_tab               = fields
          fields_not_selected      = efields
        EXCEPTIONS
          fields_incomplete        = 01
          fields_no_join           = 02
          field_not_found          = 03
          no_tables                = 04
          table_not_found          = 05
          expression_not_supported = 06
          incorrect_expression     = 07
          illegal_kind             = 08
          area_not_found           = 09
          inconsistent_area        = 10
          kind_f_no_fields_left    = 11
          kind_f_no_fields         = 12
          too_many_fields          = 13.
      IF sy-subrc = 0.
        CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
          EXPORTING
            selection_id            = selid
            title                   = title
          IMPORTING
            where_clauses           = twhere
            expressions             = texpr
            field_ranges            = trange
            number_of_active_fields = actnum
          TABLES
            fields_tab              = fields
          EXCEPTIONS
            internal_error          = 01
            no_action               = 02
            no_fields_selected      = 03
            no_tables_selected      = 04
            selid_not_found         = 05.
        IF sy-subrc = 0.
          CLEAR ds_clauses.
          MOVE tabname TO ds_clauses-tablename.
          READ TABLE twhere WITH KEY ds_clauses-tablename INTO ds_clauses.
          IF sy-subrc <> 0.
            RAISE other_error.
          ENDIF.
        ELSE.
          RAISE other_error.
        ENDIF.
      ELSE.
        RAISE other_error.
      ENDIF.
    ENDFUNCTION.
    Regards,
    Shiva

  • ABAP Help: Dynamic Selection Screen

    Hi,
    I have a requirement to be able to pick the list of fields in a selection screen. (List processing)
    Similar to SE16 choosing "fields for selection".
    I've debugged SE16 and realized it deletes the report and regenerates a new report with the updated selection screen.
    I could not do the same as it will also delete all the variants users have created in the report.
    Has anyone done something similar before?
    What is the best approach for this scenario?
    Regards,
    Michael Pang

    Hi Michael
    Hoping you have solved your problems with ALVs, I think it may be helpful to inspect FMs <b>"FREE_SELECTIONS_INIT"</b> and <b>"FREE_SELECTIONS_DIALOG"</b> for this issue. They have some <i>Function Module Documentation</i>.
    If you are dealing with logical databases, then only in the INCLUDE program DB<i>ldb</i>SEL of logical database <i>ldb</i>, you can use some selection-screen definition variants as:
    1.SELECTION-SCREEN BEGIN OF VERSION vers TEXT-xxx.
    2.SELECTION-SCREEN END OF VERSION vers.
    3.SELECTION-SCREEN EXCLUDE ... .
    4.SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
    5.SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
    6.SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE node.
    7.SELECTION-SCREEN FIELD SELECTION FOR NODE node.
    You can get more info from SAPHelp for these...
    *--Serdar

  • Select option in dialog, in a table control

    Hi Friends,
    My need is creating dynamic select options in a table control in dialog screen. How can I do my desire?
    Thanks.

    Hi,
    You can make use of
    FREE_SELECTIONS_INIT
    and
    FREE_SELECTIONS_DIALOG
    Please see the  documentation
    a®s

  • How to create a "Selection Conditions" table similar to that found in se11?

    Hi,
    My team is trying to develop a SAP data migration tool (DMT) using ABAP.
    One of the functionalities in the DMT is to validate the data imported to the staging area tables against some reference tables (e.g. SAP tables).
    To do this, I would need to have a "Selection Conditions" table similar to that found in se11 (se11--> Display "View" --> Select "Selection Conditions" tab). This table would allow me to specify my 'referencing' conditions (e.g. Table = "ZMYTAB", Field = "ZMYFLD", OPERATOR = "EQ", Comparison Value = "ZMYTAB2", AND/OR = "").
    Are there any ready-made codes out there for such a "Selection Conditions" table? Or did SAP provide a built-in object for such a table?
    Any help would be greatly appreciated. Thanks!

    personnally I do use the standard FMs for dynamic selections
    see FM FREE_SELECTIONS_DIALOG
    Look at this sample code:
    http://sap.ittoolbox.com/code/archives.asp?i=10&d=2919&a=s

  • Dynamic parameter selection

    Hello All,
    Is there any way to choose selection parameters dynamically (not a whole structure as with FM FREE_SELECTIONS_DIALOG), I'd want to represent the input parameters of a Function Module without either to know the FM at design time nor regenerate the selection program each time I run it.
    Thanks
    Martin

    Hi,
    to my knowledge there is no direct dynamic way to create parameters on selection-screens. You must either generate a transient subroutine pool with <b>GENERATE SUBROUTINE POOL</b> and call the generated selection screens with <b>CALL SELECTION-SCREEN</b> from a generated subroutine or you dynamically create a persistent program that you store in the repository with <b>INSERT REPORT</b> and call it with <b>SUBMIT</b>.
    A workaround could be, that you create a set of selection screens as subscreens with <b>SELECTION-SCREEN BEGIN OF SCREEN dynnr AS SUBSCREEN</b> and include them on your selection screen with
    <b>SELECTION-SCREEN BEGIN OF TABBED BLOCK tblock FOR n LINES.
    SELECTION-SCREEN END OF BLOCK tblock.</b>
    This is the special case of a Tabstrip without tabtitle.
    Example how to include subscreens dynamically from transaction ABAPDOCU (example library):
    <b>REPORT demo_sel_screen_with_subscreen.
    TABLES sscrfields.
    SUBSCREEN 1
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
    PARAMETERS: p1(10) TYPE c,
                p2(10) TYPE c,
                p3(10) TYPE c.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN END OF SCREEN 100.
    SUBSCREEN 2
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
    PARAMETERS: q1(10) TYPE c,
                q2(10) TYPE c,
                q3(10) TYPE c.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 200.
    SUBSCREEN 3
    SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
    PARAMETERS: r1(10) TYPE c,
                r2(10) TYPE c,
                r3(10) TYPE c.
    SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN END OF SCREEN 300.
    STANDARD SELECTION SCREEN
    SELECTION-SCREEN: FUNCTION KEY 1,
                      FUNCTION KEY 2.
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK sub FOR 10 LINES,
                      END OF BLOCK sub.
    INITIALIZATION.
      sscrfields-functxt_01 = '@0D@'.
      sscrfields-functxt_02 = '@0E@'.
      sub-prog = sy-repid.
      sub-dynnr = 100.
    AT SELECTION-SCREEN.
      CASE sy-dynnr.
        WHEN 100.
          IF sscrfields-ucomm = 'FC01'.
            sub-dynnr = 300.
          ELSEIF sscrfields-ucomm = 'FC02'.
            sub-dynnr = 200.
          ENDIF.
        WHEN 200.
          IF sscrfields-ucomm = 'FC01'.
            sub-dynnr = 100.
          ELSEIF sscrfields-ucomm = 'FC02'.
            sub-dynnr = 300.
          ENDIF.
        WHEN 300.
          IF sscrfields-ucomm = 'FC01'.
            sub-dynnr = 200.
          ELSEIF sscrfields-ucomm = 'FC02'.
            sub-dynnr = 100.
          ENDIF.
      ENDCASE.</b>

  • Specific criteria in dynamic selection screen.

    Hi experts.
    I have a requirement to build dynamic selection screen fields. For these I would like to use FREE_SELECTIONS_INIT and FREE_SELECTIONS_DIALOG function modules.
    The problem is that all fields could be single field or as a range... Is there any chance to make specific fields (DATS) as a single field and others as a range ?
    Thanks a lot.
    Daniel.

    yes
    you need to pass fields in parameter FIELDS_TAB of function FREE_SELECTIONS_DIALOG
    in this structure you have the field type P or S

  • Calling ALV report in BAPI

    Hi All There ,
    I am calling ALV report in my bapi but it is not gettin called it is not giving screen of parameter selection derectly selectin all parameter
    coding is as below
    points assured.
    Data: MTAB_REPORT_HTML type standard table of W3HTML WITH HEADER LINE.
    Submit ZSDRUSHORDERSRPT with SELECTION-TABLE SELTAB
            exporting list to Memory and return.
    CALL FUNCTION 'LIST_FROM_MEMORY'
      TABLES
        listobject = list_tab
      EXCEPTIONS
        not_found  = 1
        OTHERS     = 2.
    CALL FUNCTION 'WWW_HTML_FROM_LISTOBJECT'
    EXPORTING
       TEMPLATE_NAME       = 'WEBREPORTING_REPORT'
      CHARSET             = 'UTF8'
      TABLES
        html                = MTAB_REPORT_HTML
        listobject          = list_tab.
    FREE MEMORY.
    CLEAR LIST_TAB[].
    loop at MTAB_REPORT_HTML.
      concatenate htmlstring
                 MTAB_REPORT_HTML-LINE into htmlstring.
    endloop.

    No, It is not specific to ALV. If you can give the example of that SUBMIT then it can be analyzed. It can be for other additions that is used in the submit statement.
    Like:
    1. ... USING SELECTION-SCREEN dynnr
    2. ... VIA SELECTION-SCREEN
    Effect
    The addition USING SELECTION-SCREEN specifies the selection screen, VIA SELECTION-SCREEN specifies whether it is displayed. The additions selscreen_parameters provide values for the parameters, selection criteria, and the free selection of the called selection screen.
    The values are transferred to the selection screen between the events INITIALIZATION and AT SELECTION-SCREEN OUTPUT The following hierarchy applies for transferring values:
    1.     First, the variant of the addition USING SELECTION-SET is transferred, which sets all parameters and selection criteria to the values of the variant. The values previously set in the called program are overwritten.
    2.     The values of the table of the addition WITH SELECTION-TABLE are then transferred. All parameters and selection criteria specified there are overwritten accordingly.
    3.     Finally, the values of the additions WITH sel value are transferred. All parameters and selection criteria are overwritten accordingly. If the addition WITH sel value is used more than once for the same parameter, this is overwritten with the last specified value. If the addition WITH sel value is used more than once for the same selection criterion, a selection table with the corresponding number of lines is transferred.
    Providing values for free selections is independent of this hierarchy.
    Notes
    •     The options for parameter transfer enable a selection screen to be viewed as a parameter interface of an executable program. This applies particularly for background selection screen processing and for parameters and selection criteria that are defined without screen elements using the addition NO-DISPLAY
    •     When transferring data, note that any adjustments made to the screen format, such as abbreviations or the execution of conversion routines, are not executed for fields for which there are no screen elements on the selection screen. This applies for all parameters and selection criteria defined with NO DISPLAY. It also applies for all lines of a selection table with the exception of the first line.
    •     The additions selscreen_parameters only work the first time the called program is executed. If a selection screen is displayed in the called program, the runtime environment calls the program again after it is finished, thereby replacing the values specified in selscreen_parameters with the previous input values.
    Addition 1
    ... USING SELECTION-SCREEN dynnr
    Effect
    This addition specifies which selection screen is called. dynnr is a data object that must contain the screen number of a selection screen defined in the called program when the SUBMIT statement is called.
    •     If the addition USING SELECTION-SCREEN is omitted or the screen number 1000 is entered, the standard selection screen is called. If no standard selection screen is defined in the called program, no selection screen is called.
    •     If a screen number that is not 1000 is entered in the addition USING SELECTION-SCREEN, the corresponding independent selection screen is called. If no selection screen with this screen number is defined in the called program, this leads to an untreatable exception.
    Addition 2
    ... VIA SELECTION-SCREEN
    Effect
    If this addition is specified, the selection screen is displayed on the screen. Otherwise, background selection screen processing takes place. In background selection screen processing, the selection screen events are triggered without the selection screen being displayed.
    SUBMIT - selscreen_parameters
    Syntax
    ... [USING SELECTION-SET variant]
        [USING SELECTION-SETS OF PROGRAM prog]
        [WITH SELECTION-TABLE rspar]
        [WITH expr_syntax1 WITH expr_syntax2 ...]
        [WITH FREE SELECTIONS texpr] ... .
    Extras:
    1. ... USING SELECTION-SET variant
    2. ... USING SELECTION-SETS OF PROGRAM prog
    3. ... WITH SELECTION-TABLE rspar
    4. ... WITH expr_syntax1 WITH expr_syntax2 ...
    5. ... WITH FREE SELECTIONS texpr
    Effect
    USING-SELECTION-SET supplies all the selection screen components by means of a Variant variant. If you specify USING-SELECTION-SETS OF PROGRAM, you can use a variant from a different program; if you specify WITH SELECTION-TABLE, values for several selection screen components are transferred as the content of an internal table rspar; WITH expr_syntax supplies individual selection screen components with values. The addition WITH FREE SELECTIONS allows you to transfer free selections to the selection screen for alogical database.
    Addition 1
    ... USING SELECTION-SET variant
    Effect
    If you specify this edition, the parameters and selection criteria for the selection screen are supplied with values from a variant. For variant, you must specify a character-like data object that contains the name of a variant for the program accessed when the statement is executed. If the variant does not exist, the system sends an error message. If the variant belongs to a different selection screen, it is ignored.
    Note
    You can create and manage variants for every program in which selection screens are defined, either in the ABAP Workbench or during execution of the program by choosing Goto - Variants on a selection screen.
    Addition 2
    ... USING SELECTION-SETS OF PROGRAM prog
    Effect
    If you specify this addition, the variants of the program prog are used in the program accessed. For prog, you must specify a character-like data object that contains the name of a program when the statement is executed. The addition has the following effect:
    •     If a variant variant is specified with USING SELECTION-SET, the system searches for this variant in the program prog.
    •     If the selection screen is displayed with VIA SELECTION-SCREEN, all the functions that can be accessed by means of the menu path Goto - Variants affect the variants of the program prog. However, these functions are only active if prog is an executable program.
    Note
    The program prog should contain a selection screen that has the same parameters and selection criteria as the selection screen used in the program accessed.
    Addition 3
    ... WITH SELECTION-TABLE rspar
    Effect
    If you specify this addition, parameters and selection criteria on the selection screen are supplied from an internal table rspar. You must specify an internal table with the row type RSPARAMS for rspar. The structured data type RSPARAMS is defined in the ABAP Dictionary and has the following components, all of which are data type CHAR:
    •     SELNAME (length 8),
    •     KIND (length 1),
    •     SIGN (length 1),
    •     OPTION (length 2),
    •     LOW (length 45),
    •     HIGH (length 45).
    To supply parameters and selection criteria for the selection screen with specific values, the lines in the internal table rspar must contain the following values:
    •     SELNAME must contain the name of a parameter or selection criterion for the selection screen in block capitals
    •     KIND must contain the type of selection screen component (P for parameters, S for selection criteria)
    •     SIGN, OPTION, LOW, and HIGH must contain the values specified for the selection table columns that have the same names as the selection criteria; in the case of parameters, the value must be specified in LOW and all other components are ignored.
    If the name of a selection criterion is repeated in rspar, this defines a selection table containing several lines and passes it on to the selection criterion. If parameter names occur several times, the last value is passed on to the parameter.
    The contents of the parameters or selection tables for the current program can be entered in the table by the function module RS_REFRESH_FROM_SELECTOPTIONS.
    Notes
    In contrast to selection tables, the data types of the components LOW and HIGH in table rspar are always of type CHAR and are converted to the type of the parameter or selection criterion during transfer, if necessary.
    •     When entering values, you must ensure that these are entered in the internal format of the ABAP values, and not in the output format of the screen display.
    Addition 4
    ... WITH expr_syntax1 WITH expr_syntax2 ...
    Effect
    This addition supplies values to individual parameters or selection criteria for the selection screen. Parameters are supplied with single values and selection criteria with selection tables that overwrite values already specified in the program accessed. The selection table to be transferred is compiled from all the expr_syntax additions that address the same selection criterion sel. You can specify the following statements for expr_syntax, where you have to specify the name of a parameter or a selection criterion directly for sel:
    •     sel {EQ|NE|CP|NP|GT|GE|LT|LE} dobj [SIGN sign]
    Transfer of a single value.
    The operators before dobj correspond to the values specified for column OPTION for selection tables. For dobj, you must specify a data object whose data type can be converted to the data type of the selection screen component sel. For sign, you can specify a character-like field that must contain 'I' or 'E'. The standard value is 'I'.
    If sel is a selection criterion, the system appends a line in the selection table to be transferred, placing the operator in column OPTION, the content of dobj in column LOW, and the content of sign in column SIGN.
    If sel is a parameter, it is set to the value of dobj in the program accessed. The operator and the value of sign are not taken into account.
    •     sel [NOT] BETWEEN dobj1 AND dobj2 [SIGN sign]
    Transfer of an interval.
    In this case, sel must be a selection criterion. For dobj, you must specify data objects whose data type can be converted to that of the columns LOW and HIGH for the selection criterion sel. For sign, you can specify a character-like field that must contain 'I' or 'E'. The standard value is 'I'.
    A line is appended in the selection table to be transferred. If NOT is specified, the value 'NB' is placed in column OPTION; otherwise, the value entered is 'BT'. The content of the data objects dobj and sign is placed in the columns LOW, HIGH, and SIGN.
    •     sel IN rtab
    Transfer of a ranges table.
    In this case, sel must be a selection criterion. For rtab, you must specify an internal table that has the same structure as the selection table for selection criterion sel. A table of this type can be created using the addition RANGE OF to the statements TYPES and DATA.
    The lines in table rtab are appended to the selection table to be transferred.
    You can specify the addition expr_syntax more than once, and you can also specify the same selection screen component more than once.
    Notes:
    •     = or INCL can also be used instead of the operator EQ.
    •     When entering values, you must ensure that these have the internal format of the ABAP values, and not the output format of the screen display.
    Example
    The program report1 has a stand-alone selection screen with the screen number 1100. In the program report2, an internal table with row type RSPARAMS and a ranges table are filled for this selection screen. These are transferred at SUBMIT together with a single condition.
    Program accessed
    REPORT report1.
    DATA text TYPE c LENGTH 10.
    SELECTION-SCREEN BEGIN OF SCREEN 1100.
      SELECT-OPTIONS: selcrit1 FOR text,
                      selcrit2 FOR text.
    SELECTION-SCREEN END OF SCREEN 1100.
    Calling program
    REPORT report2.
    DATA: text       TYPE c LENGTH 10,
          rspar_tab  TYPE TABLE OF rsparams,
          rspar_line LIKE LINE OF rspar_tab,
          range_tab  LIKE RANGE OF text,
          range_line LIKE LINE OF range_tab.
    rspar_line-selname = 'SELCRIT1'.
    rspar_line-kind    = 'S'.
    rspar_line-sign    = 'I'.
    rspar_line-option  = 'EQ'.
    rspar_line-low     = 'ABAP'.
    APPEND rspar_line TO rspar_tab.
    range_line-sign   = 'E'.
    range_line-option = 'EQ'.
    range_line-low    = 'H'.
    APPEND range_line TO range_tab.
    range_line-sign   = 'E'.
    range_line-option = 'EQ'.
    range_line-low    = 'K'.
    APPEND range_line TO range_tab.
    SUBMIT report1 USING SELECTION-SCREEN '1100'
                   WITH SELECTION-TABLE rspar_tab
                   WITH selcrit2 BETWEEN 'H' AND 'K'
                   WITH selcrit2 IN range_tab
                   AND RETURN.
    Result
    After report1 has been accessed by report2, the selection tables for the selection criteria selcrit1 and selcrit2 in the program accessed contain the following entries:
    Addition 5
    ... WITH FREE SELECTIONS texpr
    Effect
    This addition supplies values to the dynamic selections for the selection screen for a logical database. The program accessed must be linked to a logical database that supports dynamic selections. texpr must be an internal table of the type RSDS_TEXPR from type group RSDS.
    In texpr, the selections for the dynamic selections are specified in an internal format (Reverse Polish Notation). You can use function modules FREE_SELECTIONS_INIT, FREE_SELECTIONS_DIALOG, and FREE_SELECTIONS_RANGE_2_EX from the function group SSEL to fill texpr in the calling program. While the first two function modules execute a user dialog, you can transfer ranges tables to FREE_SELECTIONS_RANGE_2_EX for each node in the dynamic selection in an internal table of the type RSDS_TRANGE. These are then converted to a table of the row type RSDS_TEXPR. If the calling program contains a selection screen with the same dynamic selections, you can transfer its content beforehand to a table of the type RSDS_TRANGE using the function module RS_REFRESH_FROM_DYNAMICAL_SEL.
    The lines in the internal table type RSDS_TRANGE contain a flat component TABLENAME for each node and a table-like component FRANGE_T of the type RSDS_FRANGE_T for the fields in the node. The lines in RSDS_FRANGE_T contain a flat component FIELDNAME for each field and a table-like component SELOPT_T of the row type RSDSSELOPT from the ABAP Dictionary. RSDSSELOPT contains the four components SIGN, OPTION, LOW, and HIGH and can include the ranges table.
    Example
    Program report1 is linked to the logical database F1S, which supports dynamic selections for the node SPFLI. Program report2 enters conditions in a nested internal table of the type rsds_trange with selection conditions for field CONNID in node SPFLI; this is then converted to a table of the type rsds_texpr, which is transferred at SUBMIT.
    Program accessed
    REPORT report1.
    NODES: spfli, sflight, sbook.
    Calling program
    REPORT report2.
    TYPE-POOLS rsds.
    DATA: trange TYPE rsds_trange,
          trange_line
            LIKE LINE OF trange,
          trange_frange_t_line
            LIKE LINE OF trange_line-frange_t,
          trange_frange_t_selopt_t_line
            LIKE LINE OF trange_frange_t_line-selopt_t,
          texpr TYPE rsds_texpr.
    trange_line-tablename = 'SPFLI'.
    trange_frange_t_line-fieldname = 'CONNID'.
    trange_frange_t_selopt_t_line-sign   = 'I'.
    trange_frange_t_selopt_t_line-option = 'BT'.
    trange_frange_t_selopt_t_line-low    = '0200'.
    trange_frange_t_selopt_t_line-high   = '0800'.
    APPEND trange_frange_t_selopt_t_line
      TO trange_frange_t_line-selopt_t.
    trange_frange_t_selopt_t_line-sign   = 'I'.
    trange_frange_t_selopt_t_line-option = 'NE'.
    trange_frange_t_selopt_t_line-low    = '0400'.
    APPEND trange_frange_t_selopt_t_line
      TO trange_frange_t_line-selopt_t.
    APPEND trange_frange_t_line TO trange_line-frange_t.
    APPEND trange_line TO trange.
    CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_EX'
      EXPORTING
        field_ranges = trange
      IMPORTING
        expressions  = texpr.
    SUBMIT report1 VIA SELECTION-SCREEN
                   WITH FREE SELECTIONS texpr.

  • Dynamic Select Options/Ranges Maintain and Display in my screen

    Hi I am trying to figure out if I can create a screen which will will read various select-options I have stored in a custom table but am having trouble finding something which will allow me to display each of 'select-options' in my dynpro... has anyone ever done this?
    I'd rather not reinvent the wheel or mimic - does anyone know of a way to basically use a loaded range and display it on a screen for display or maintenance using standard SAP routines/classes?
    Thanks in advance!
    Roc..

    @Adrian - I got your email regarding the code sample, here is a quick example of how to popup a dynamic selection for up to 5 tables...
    *& Report  ZRS_DYNAMIC
    REPORT  zrs_dynamic.
    * START Dynamic Range Selection Definitions
    * Definition of the selection_if variable, which is used to reference
    * the selections obtained
    DATA: gv_selid TYPE rsdynsel-selid.
    * Definition of the TABLES_TAB table for use in providing the list of
    * fields available for creating select options from
    DATA: gt_tables TYPE STANDARD TABLE OF rsdstabs.
    DATA: gs_tables TYPE rsdstabs.
    PARAMETERS: p_tab1 TYPE tabname DEFAULT 'KNA1',
                p_tab2 TYPE tabname DEFAULT 'KNB1',
                p_tab3 TYPE tabname DEFAULT 'KNC1',
                p_tab4 TYPE tabname DEFAULT 'KNVV',
                p_tab5 TYPE tabname DEFAULT 'KNVP'.
    START-OF-SELECTION.
      gs_tables-prim_tab = p_tab1 .APPEND gs_tables TO gt_tables.
      gs_tables-prim_tab = p_tab2 .APPEND gs_tables TO gt_tables.
      gs_tables-prim_tab = p_tab3 .APPEND gs_tables TO gt_tables.
      gs_tables-prim_tab = p_tab4 .APPEND gs_tables TO gt_tables.
      gs_tables-prim_tab = p_tab5 .APPEND gs_tables TO gt_tables.
    * Definition of Table which includes the select-option range for field
      TYPES: ty_selopt_t TYPE  rsdsselopt OCCURS 10.
    * Definition of field name and select option range table
      TYPES: BEGIN OF ty_frange,
               fieldname TYPE rsdstabs-prim_fname,
               selopt_t TYPE ty_selopt_t,
             END OF ty_frange.
      TYPES: ty_frange_t TYPE ty_frange OCCURS 10.
      TYPES: BEGIN OF ty_range,
               tablename LIKE rsdstabs-prim_tab,
               frange_t TYPE ty_frange_t,
             END OF ty_range.
      TYPES: ty_range_t TYPE STANDARD TABLE OF ty_range.
      DATA: it_ranges TYPE ty_range_t.
    * work areas
      DATA: gs_ranges TYPE ty_range.
      DATA: gs_frange TYPE ty_frange.
      DATA: gs_selopt TYPE rsdsselopt.
      DATA: gt_ranges TYPE ty_range_t.
      DATA: gt_frange TYPE ty_frange_t.
      DATA: gt_selopt TYPE ty_selopt_t.
    * Definition of the fields list avaiable
      TYPES: ty_fields TYPE STANDARD TABLE OF rsdsfields.
      DATA: it_fields TYPE ty_fields.
      DATA: gs_fields TYPE rsdsfields.
    * END Dynamic Range Selection --------------------------------------------
      CALL FUNCTION 'FREE_SELECTIONS_INIT'
        EXPORTING
          kind         = 'T'
        IMPORTING
          selection_id = gv_selid
        TABLES
          tables_tab   = gt_tables.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
        EXPORTING
          selection_id    = gv_selid
          title           = 'Select WHERE criteria for Rule'(s12)
          as_window       = 'X'
          start_row       = 7
          start_col       = 10
        IMPORTING
          field_ranges    = it_ranges
        TABLES
          fields_tab      = it_fields
        EXCEPTIONS
          internal_error  = 1
          no_action       = 2
          selid_not_found = 3
          illegal_status  = 4
          OTHERS          = 5.
    Edited by: Rocco Scocco on Jun 17, 2010 3:48 PM
    Edited by: Rocco Scocco on Jun 17, 2010 3:49 PM

Maybe you are looking for

  • RE: Reporting after many forte tasks run in batch mode?

    Actually, if you're looking for MAKEAPPDISTRIB (I assume that's how you create distributable) you can see if the command was succesfull or not. <<deployrep.js>> This Jscript will look for this string and it will generate a report based on the next li

  • Oleautomgr.cpp

    Please has anyone encounter this error message while using report generator 1.0.1 with Office XP? My Labview version is 6.0.2. I have implemented all the suggestions described under www.ni.com/failure for this error message, the problem still persist

  • Firefox switches back to originating site instantaneously.

    This question, I'm sure, has been asked before. I just can't seem to find the CORRECT solution. This has been going on now for, I know, a year or more. I just get tired of trying to find the solution so I just deal with it. Well, I've got to the poin

  • Can`t install CA in iPlanet Directory Server 5.0 ??

    Hi All, i try to install a self-signed CA-certifikate, under "CA-Certs" in iPlanet Directory Server 5.0. The certificate is generated using the tool "ssleay" or from an Windows2000-CA. Always i get "the certificate specified is not a valid CA certifi

  • How to set wamp server time?

    Downloaded the most recent version of Wamp (Apache 2.2.11 , PHP 5.3.0,  MySQL 5.1.36) Server time is 5 hours later than my local time (America, Chicago) Where can i change the time settings? thanks for your help, -Jim Balthrop