Select-options & memory id

Hi together,
I´m using 'memory id' for parameters and select-options in order to retrieve the last set of entries.
Obviously 'memory id' only saves the 'low'-value of my select-options. How can I save/retrieve the 'high'-value?
Thanks for any help

Hi,
Select options is  a table which can hold multiple entries . So using parameter ID here is of no use. May be you can use Export/Import .
REPORT abc.
DATA:v_matnr type mara-matnr.
SELECT-OPTIONS:s_matnr FOR v_matnr.
AT SELECTION-SCREEN OUTPUT.
  IMPORT s_matnr FROM MEMORY ID 'MAT'.
START-OF-SELECTION.
  EXPORT s_matnr TO MEMORY ID 'MAT'.

Similar Messages

  • Select-options in Dialog Programming

    Hi,
    I am designing a custom dialog programming screen.
    I want to create a filed on thescreen which can allow the range of values to be entered like select-options in a report.
    How do I create a field which can accept range of values in dialog programming?
    Thanks,
    Ashok.

    Hi,
    In your selection screen program, Use Export  command
      Export r_Purchase_Order To Memory Id 'PO'.
                 Export r_Po_Item        To Memory Id 'POITEM'.
                 Export r_Plant          To Memory Id 'PLANT'.
                 Export r_Vendor         To Memory Id 'VENDOR'.
                 Export r_Material       To Memory Id 'MATNR'.
                 Export r_Batch          To Memory Id 'BATCH'.
                 Export r_Arrival_Date   To Memory Id 'ADATE'.
                 Export r_Arrival_Time   To Memory Id 'ATIME'.
                 Export r_Delivery_No    To Memory Id 'DEL'.
                 Export r_Reference_No   To Memory Id 'REF'.
                 Export r_User           To Memory Id 'USER'.
                 Export t_Display_Data   To Memory Id 'DISPDAT'.
    In your Module pool program, Use Import Command
        When c_Ok_0100_Execute.
                   IMPORT r_Purchase_Order From Memory Id 'PO'.
                   IMPORT r_Po_Item        From Memory Id 'POITEM'.
                   Import r_Plant          From Memory Id 'PLANT'.
                   Import r_Vendor         From Memory Id 'VENDOR'.
                   Import r_Material       From Memory Id 'MATNR'.
                   Import r_Batch          From Memory Id 'BATCH'.
                   Import r_Arrival_Date   From Memory Id 'ADATE'.
                   Import r_Arrival_Time   From Memory Id 'ATIME'.
                   Import r_Delivery_No    From Memory Id 'DEL'.
                   Import r_Reference_No   From Memory Id 'REF'.
                   Import r_User           From Memory Id 'USER'.
                   Import t_Display_Data   From Memory Id 'DISPDAT'.
    Thanks

  • Add new select option for VT04 variants

    Hi Experts,
    Want to know the process of how we add a new select option (say sold-to/KUNAG) to the existing set of selection criteria in the variants in VT04 apart from implicit enhancements.
    Even if we create a new implicit enhancement in LV56LSCR, the new field (sold-to/KUNAG) has to be further added to the select statements also. The select statement in the subroutine INDEX_SELEKTIEREN in LV56LF01 has to be enhanced for the same.
    Also should this new field has to be added to the EXPORT TO and IMPORT FROM MEMORY ID MEMORY_LFSL statements in the other includes of SAPLV56L ?
    Is there a better/recommended way to do this? Any pointers are much appreciated. Thank You.
    Regards,
    Narendra.

    Hi Ravi,
    This is infact the program for the txn VT04, would you be able to shed any other info? Thanks.
    Regards,
    Narendra.
    Edited by: Narendra Daka on Dec 7, 2011 9:00 AM

  • Creating a Select-option with no-intervals and a parameter on a single line

    Hi
    I have a unusual reqirment of creating a select-option with no intervals obligatory and a parameter on a single line. Is this possible? Can any one please provide me a solution for this. I reffered to the SAP help and what i found out is a single line can contain only parameters.

    Hi,
    humm,
    I guess it's not possible on one line.
    SORRY I've tried and it works!
    Try this :
    SELECTION-SCREEN BEGIN OF BLOCK main WITH FRAME
                     TITLE text-s01 NO INTERVALS.
    SELECTION-SCREEN begin of line.
    PARAMETERS : p_gjahr LIKE bkpf-gjahr OBLIGATORY MEMORY ID gjr.
    SELECT-OPTIONS : s_blart FOR bkpf-blart MODIF ID knt .
    SELECTION-SCREEN end of line.
    SELECTION-SCREEN END OF BLOCK main.
    Regards,
    erwan

  • Empty selection options  after report run

    Hi,
    After the execution of my abap report sap returns to the selection options screen in which all the selected values from the run are still mentioned. How can i refresh the selection screen (so no values in the selection options after the report run) ?
    this is the code (all parameters as you can see) :
      parameters :  p_matnr   like mara-matnr default ''.
      parameters :  p_werks   like mard-werks default 'XYZ', 
                    p_lgort   like mard-lgort default ''.    
    selection-screen skip 1.
      parameters :  p_qty     like sy-tabix default 1.
    selection-screen skip 1.
      parameters :  p_file    like RLGRAP-FILENAME memory id GXD.
    with regards

    hi
    i tried for select-options try for parameters
    at selection-screen .
    if sy-ucomm = 'ONLI'. " Only when execute is pressed
    v_low = s_kunnr-low.
    v_high = s_kunnr-high . " Hang on to this for select statement
    clear s_kunnr[].
    clear s_kunnr. " Clear the screen parameter
    endif.
    for your program
    data : matnr like mara-matnr,  " variables are taken so that we can have the values for further                                     operations         
          werks like mard-werks,
           lgort like mard-lgort,
           qty like sy-tabix,
           file like RLGRAP-FILENAME.
    at selection-screen.
    if sy-ucomm = 'ONLI'. " Only when execute is pressed
    matnr = p_matnr.
    clear p_matnr.
    werks = p_werks.
    clear p_werks.
    lgort = p_lgort.
    clear p_lgort.
    qty = p_qty.
    clear p_qty.
    file = p_file.
    clear p_file.
    endif.
    start-of-selection. " write what ever code you have for the start-of-selection
    NOTE "Remove the memory id for p_file otherwise it will not be cleared
    regards
    prasanth

  • How to hold data in parameter or select option

    i have define parametrs/select option.
    once i have run report , i will enter certain value in that parametrs or select option.when i run report again i want same value  in that parametrs or select option which i enter previously.urgent

    Hi
    Try this:
    DATA: NEXT_RUN.
    PARAMETERS: P TYPE I.
    START-OF-SELECTION.
      WRITE P.
    INITIALIZATION.
      IMPORT NEXT_RUN FROM MEMORY ID SY-REPID.
      IF SY-SUBRC <> 0.
        NEXT_RUN = 'X'.
        EXPORT NEXT_RUN TO MEMORY ID SY-REPID.
      ENDIF.
    AT SELECTION-SCREEN OUTPUT.
      IF NEXT_RUN = 'X'.
        P = 2.
      ENDIF.
    Max

  • Passing selection-options to standard PROG

    Hi All,
         i want to  submit a standard program into zprogram , in standard program there are 3 select-options . i need to pass  zselect-options into these 3 select-options in standard program.
    if u have any code please pass to me.
    please help me.
    Many Thanks
    Naren

    check this
    Syntax Diagram
    SUBMIT
    Basic forms:
    1. SUBMIT rep.
    2. SUBMIT (name).
    Extras:
    1. ... LINE-SIZE col
    2. ... LINE-COUNT line
    3. ... TO SAP-SPOOL List output to the SAP spool database
    4. ... USING SELECTION-SCREEN scr
    5. ... VIA SELECTION-SCREEN
    6. ... AND RETURN
    7. ... EXPORTING LIST TO MEMORY
    8. ... USER user VIA JOB job NUMBER n
    9. ...Various additions for passing parameters to rep
    10. ... USING SELECTION-SETS OF PROGRAM prog
    Effect
    Calls report rep.
    The system leaves the active program and starts the new report rep. In basic form 2, you can specify the name of the report in the field name. You must specify the name in uppercase, otherwise a runtime error occurs.
    Note
    You can only start programs with type '1' using SUBMIT. If the program has a different type, the system triggers a runtime error.
    Please consult Data Area and Modularization Unit Organization documentation as well.
    Addition 1
    ... LINE-SIZE col
    Effect
    The list generated by the report has the line width col.
    Addition 2
    ... LINE-COUNT line
    Effect
    The list generated by the report has line lines per page.
    Addition 4
    ... USING SELECTION-SCREEN scr
    Effect
    When you execute the report, the system uses the selection screen number that you specify in the scr field. This must be a selection screen defined using the SELECT-OPTIONS, PARAMETERS and SELECTION-SCREEN statements.If you omit the addition, the system uses the standard selection screen 1000.
    This addition allows you to start the same report in different situations, using a different selection screen each time.
    Notes
    The addition VIA SELECTION SCREEN determines whether the report is processed in the foreground or the background.
    What happens if the required screen does not exist or is not a selection screen?
    Screen 1000:
    If you want to use the standard selection screen (... USING SELECTION-SCREEN 1000 or do not specify a ... USING SELECTION-SCREEN) addition, the system does not process a selection screen.
    Other selection screens:
    The system triggers a runtime error.
    Addition 5
    ... VIA SELECTION-SCREEN
    Effect
    The selection screen is displayed. In this case, the selection screen is displayed again after the report list has been displayed. The values entered by the user remain displayed.
    Addition 6
    ... AND RETURN
    Effect
    Returns to the calling transaction or program after the called program has been executed. SUBMIT ... AND RETURN creates a new internal session.
    Addition 7
    ... EXPORTING LIST TO MEMORY
    Effect
    Does not display the output list of the called report, but saves it in ABAP memory and leaves the called report immediately. Since the calling program can read the list from memory and process it further, you need to use the addition ... AND RETURN . Also, since the called report cannot be requested for printing, the addition ... TO SAP-SPOOL is not allowed here. In addition, you must not assign a function code to the ENTER key in the current GUI status. The saved list is read from the SAP memory using the function module 'LIST_FROM_MEMORY' and can then be saved to the database using EXPORT, for example. You can process this list further with the function modules 'WRITE_LIST', 'DISPLAY_LIST' ... of the function group "SLST".
    Addition 8
    ... USER user VIA JOB job NUMBER n
    Effect
    Schedules the specified report in the job specified by the job name job and the job number n. The job runs under the user name user and you can omit the addition USER user. The assignment of the job number occurs via the function module JOB_OPEN (see also the documentation for the function modules JOB_CLOSE and JOB_SUBMIT). This addition can only be used with the addition ...AND RETURN.
    Note
    When scheduling a report with the SUBMIT ... VIA JOB job NUMBER n statement, you should always use the addition ...TO SAP-SPOOL to pass print and/or archive parameters. Otherwise, default values are used to generate the list and this disturbs operations in a production environment.
    SY-SUBRC = 0:
    Job scheduled successfully
    SY-SUBRC = 4:
    Job scheduling terminated by user
    SY-SUBRC = 8:
    Error in job scheduling (JOB_SUBMIT)
    SY-SUBRC = 12:
    Error in internal number assignment
    Addition 10
    ... USING SELECTION-SETS OF PROGRAM prog
    Effect
    Uses variants of the program prog when executing the program rep.
    Note
    Important
    The programs prog and rep must have the same SELECT-OPTIONS and PARAMETERs. Otherwise, variants of the program prog may be destroyed.
    Note
    When using this addition, the specified variant vari of the program prog is taken in USING SELECTION-SET vari. On the other hand, all variant-related actions on the selection screen of rep (Get, Save as variant, Display, Delete) refer to the variants of prog.
    Example
    SUBMIT REPORT01
           VIA SELECTION-SCREEN
           USING SELECTION-SET 'VARIANT1'
           USING SELECTION-SETS OF PROGRAM 'REPORT00'
           AND RETURN.
    Effect
    Executes the program REPORT01 with the variant VARIANT1 of the program REPORT00.
    Exceptions
    Non-Catchable Exceptions
    Cause: The specified program was not found.
    Runtime Error: LOAD_PROGRAM_NOT_FOUND
    Cause: Invalid value passed to a selection with SIGN.
    Runtime Error: SUBMIT_WRONG_SIGN
    Cause: The specified program is not a report.
    Runtime Error: SUBMIT_WRONG_TYPE
    Cause: More than one value passed to a report parameter.
    Runtime Error: SUBMIT_IMPORT_ONLY_PARAMETER
    Cause: Table passed to a selection with WITH sel IN itab that has an unexpected structure.
    Runtime Error: SUBMIT_IN_ITAB_ILL_STRUCTURE
    Additional help
    Starting Executable Programs (Reports)
    Regards
    Prabhu

  • How to set BDCDATA table for a SELECT-OPTIONS object?

    Dear experts,
    I have a transaction with PARAMETERS and SELECT-OPTIONS objects. This transaction will be called by another program by using CALL TRANSACTION 'mytransaction' USING mybdcdata statement. Below is some of the called transaction's source code:
    DATA:
      date TYPE sflight-fldate.
    PARAMETERS:
      p_carid TYPE sflight-carrid,
      p_conid TYPE sflight-connid.
    SELECT-OPTIONS:
      so_date FOR date.
    This is what I wrote in the calling program to define the values of the called transaction PARAMETERS fields:
    DATA:
      wa_bdcdata TYPE bdcdata,
      it_bdcdata TYPE TABLE OF bdcdata.
    wa_bdcdata-program = 'MYPROGRAM'.
    wa_bdcdata-dynpro = '1000'.
    wa_bdcdata-dynbegin = 'X'.
    APPEND wa_bdcdata TO it_bdcdata.
    CLEAR wa_bdcdata.
    wa_bdcdata-fnam = 'P_CARID'.
    wa_bdcdata-fval = 'AA'.
    APPEND wa_bdcdata TO it_bdcdata.
    CLEAR wa_bdcdata.
    wa_bdcdata-fnam = 'P_CONID'.
    wa_bdcdata-fval = '017'.
    APPEND wa_bdcdata TO it_bdcdata.
    CALL TRANSACTION 'MYTRANSACTION' USING it_bdcdata.
    Unfortunately, I don't know how to set the values for the SELECT-OPTIONS screen fields. How to do this?
    I've Googled this and tried several guesses but none was found or successful. Thanks in advance.
    Regards,
    Haris

    Hi ,
      Better go for  SUBMIT report   instead of CALL transaction  ...
      find the name  of  report being called  on that transaction which you will be calling  . Use that report name in SUBMIT 
    Just take help from  below code .
    Before using do please read  by pressing f1 on SUBMIT  syntax .
    data:seltab     type table of rsparams,
             seltab_wa  like line of seltab.
        move: 'LANGU'  to seltab_wa-selname,
              'S'      to seltab_wa-kind,
              'I'      to seltab_wa-sign,
              'BT'     to seltab_wa-option,
              'D'      to seltab_wa-low,
              'I'      to seltab_wa-high.
        append seltab_wa to seltab.
        clear seltab_wa.
        move: 'E'      to seltab_wa-sign,
              'EQ'     to seltab_wa-option,
              'F'      to seltab_wa-low,
              space    to seltab_wa-high.
        append seltab_wa to seltab.
        clear seltab_wa.
        move: 'AUFNR' to seltab_wa-selname,
              p_aufnr to seltab_wa-low.
        append seltab_wa to seltab.
        clear seltab_wa.
        submit rkaep000  using selection-set 'VARIANT1'
                          with aufnr = p_aufnr
                          with selection-table seltab
                          exporting list to memory
                          and return .
    regards
    Deepak.

  • Remove screen values for select options after report runs

    I have a report that runs and when it is finished there is garbage in 3 select-option fields.  I put it there because i want the report to run if the field is blank.  here is a sample of that code.
    IF SO_APS = '  '.
        SO_APS = 'IEQn'.
        APPEND SO_APS.
      ENDIF.
    what happens is that there is an displayed after the report is finished, and I don't want to confuse the end users.

    You can try clearing it as the last statement.
    clear  SP_APS.   Refresh SO_APS.
    If that doesn't work, then try FREE MEMORY as the last executable statement.
    Regards,
    Rich Heilman

  • Default  value for select options.

    Hi folks
    I have to default four values in select-options.
    eg.,
    S_lfart for likp-lfart, default zse, zin, znd, zps.
    Thanks in Advance,
    Rao

    Hi,
    Go through the following syntax:
    SELECT-OPTIONS <sel> FOR <f>
                   [DEFAULT <g> [to <h>] [OPTION <op>] SIGN <s>]
                   [MEMORY ID <pid>]
                   [LOWER CASE]
                   [OBLIGATORY]
                   [NO-DISPLAY]
                   [MODIF ID <key>]
                   [NO-EXTENSION]
                   [NO INTERVALS]
                   [NO DATABASE SELECTION].
    Declares a selection table <sel> for the field <f>. For <sel>, places input fields on the corresponding selection screen. The additions allow you to set a default value, accept input in lowercase, define a required field, suppress or modify the display on the selection screen, restrict the selection table to a line or a selection to a single field, or prevent input from being passed to a logical database
    Regards,
    Bhaskar

  • "WHERE field IN select-options" alternative

    I currently have a report that uses
    SELECT-OPTIONS so_num FOR qmih-qmnum.
    SELECT * FROM qmih INTO TABLE t_qmih
       WHERE qmnum IN so_num.
    Now, this works fine unless the user selects a large number of individual items in the select options, e.g. 7,000 individual qmnums, in which case I get an ABAP error.
    The dump contains the following helpful information:
    How to correct the error                                                                               
    The SAP Open SQL statement must be divided into several smaller units.
    If the problem occurred due to the use of an excessively large table  
    in an IN itab construct, you can use the addition FOR ALL ENTRIES     
    instead.                                                              
    When you use this addition, the statement is split into smaller units 
    according to the restrictions of the database system used.                                                                               
    You may able to find an interim solution to the problem               
    in the SAP note system. If you have access to the note system yourself,
    use the following search criteria:                                    
    Could anyone give me an idea of how I could fix this?

    Hi Chandrasekhar,
    very interesting statement but not necessarily correct.
    Select-options declares a range-type internal table with header line. The number of table rows is limited by the system memory storage available.
    Oracle database has a fixed limit of 32KB for the length of the select statement. The open SQL database interface will resolve the range table resulting in the right number of comparison expressions.
    If the user puts too many values into select-options, he will probably copy single values which are represented by SIGN = 'I' and OPTION = 'EQ'.
    Try this (example):
    select-options:
      s_matnr for mara-matnr.
    data:
      lt_value like hashed table of s_matnr-low with unique key table_line. "avoid duplicates
    fiels-symbols:
      <any> type any,
      <value> type any.
    loop at s_matnr assigning <any>
      where sign = 'I' and option = 'EQ'.
      assign component 'LOW' of structure <any> to <field>.
      insert <field> into table t_value.
      delete s_matnr.
    endloop.
    select ...
      into table ...
      from ...
      for all entries in lt_value
      where matnr = lt_value-table_line.
    if lines( s_matnr ) > 0.
    select ...
      appending table ...
      from ...
      where matnr in s_matnr.
    endif.
    Now you've got them all.
    Regards,
    Clemens

  • Select-option + ALV on the same screen

    hi,
    how can we can get Select-option + ALV on the same screen.
    Thanks,
    Gaurav

    hi gaurav,
    Use the following code...It works...
    TABLES: vbrk.
    *CONSTANTS
    CONSTANTS :
    c_x(1)        TYPE c VALUE 'X',
    c_zxto        TYPE vbak-auart VALUE 'ZXTO',
    c_e           TYPE spras VALUE 'E',
    c_000000      TYPE posnr VALUE '000000',
    c_ship_to     TYPE parvw VALUE 'WE'.      "Ship To Party
    Table Types
    TYPES: BEGIN OF ty_vbrk_vbrp,
    vbeln TYPE vbrk-vbeln,    "Billing doc
    posnr TYPE vbrp-posnr,    "Billing item
    aubel TYPE vbrp-aubel,    "Sales order
    waerk TYPE vbrk-waerk,    "Doc currency
    mvgr1 TYPE vbrp-mvgr1,    "Material group 1
    mvgr3 TYPE vbrp-mvgr3,    "Material group 3
    mvgr4 TYPE vbrp-mvgr4,    "Material group 4
    matnr TYPE vbrp-matnr,    "Material no
    ntgew TYPE vbrp-ntgew,    "Net wt
    gewei TYPE vbrp-gewei,    "Wt unit
    kzwi1 TYPE vbrp-kzwi1,                             "Subtotal 1
    kursk TYPE vbrp-kursk,    "Exchange rate
    END   OF ty_vbrk_vbrp.
    TYPES: BEGIN OF ty_data,
    land1 TYPE vbpa-land1,
    landx TYPE t005t-landx,
    mvgr3 TYPE vbrp-mvgr3,
    mvgr4 TYPE vbrp-mvgr4,
    bezei3 TYPE tvm3t-bezei,
    bezei4 TYPE tvm4t-bezei,
    ntgew_tea_bag TYPE vbrp-ntgew,
    ntgew_pkt_tea TYPE vbrp-ntgew,
    ntgew_bulk_tea TYPE vbrp-ntgew,
    kzwi1_tea_bag TYPE vbrp-kzwi1,    "Subtotal 1 Tea Bag
    kzwi1_pkt_tea TYPE vbrp-kzwi1,    "Subtotal 1 Pkt Tea
    kzwi1_bulk_tea TYPE vbrp-kzwi1,   "Subtotal 1 Bulk Tea
    ntgew_tot TYPE vbrp-ntgew,
    kzwi1_tot TYPE vbrp-kzwi1,
    line_color(4) TYPE c,  "For line color
    END OF ty_data.
    TYPES: BEGIN OF ty_vbpa,
    vbeln TYPE vbpa-vbeln,
    land1 TYPE vbpa-land1,
    END OF ty_vbpa.
    TYPES: BEGIN OF ty_t005t,
    land1 TYPE t005t-land1,
    landx TYPE t005t-landx,
    END OF ty_t005t.
    TYPES: BEGIN OF ty_tvm3t,
    mvgr3 TYPE tvm3-mvgr3,
    bezei TYPE tvm3t-bezei,
    END OF ty_tvm3t.
    TYPES: BEGIN OF ty_tvm4t,
    mvgr4 TYPE tvm4-mvgr4,
    bezei TYPE tvm4t-bezei,
    END OF ty_tvm4t.
    DATA: it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp,
    wa_vbrk_vbrp TYPE ty_vbrk_vbrp,
    it_vbpa TYPE STANDARD TABLE OF ty_vbpa,
    wa_vbpa TYPE ty_vbpa,
    it_data TYPE STANDARD TABLE OF ty_data,
    wa_data TYPE ty_data,
    it_t005t TYPE STANDARD TABLE OF ty_t005t,
    wa_t005t TYPE ty_t005t,
    it_tvm3t TYPE STANDARD TABLE OF ty_tvm3t,
    wa_tvm3t TYPE ty_tvm3t,
    it_tvm4t TYPE STANDARD TABLE OF ty_tvm4t,
    wa_tvm4t TYPE ty_tvm4t.
    Global data for grand total
    DATA:
    w_tot_ntgew_tea_bag TYPE vbrp-ntgew,
    w_tot_ntgew_pkt_tea TYPE vbrp-ntgew,
    w_tot_ntgew_bulk_tea TYPE vbrp-ntgew,
    w_tot_ntgew_tot TYPE vbrp-ntgew,
    w_tot_kzwi1_tea_bag TYPE vbrp-kzwi1,
    w_tot_kzwi1_pkt_tea TYPE vbrp-kzwi1,
    w_tot_kzwi1_bulk_tea TYPE vbrp-kzwi1,
    w_tot_kzwi1_tot TYPE vbrp-kzwi1.
    Global data definitions for ALV
    DATA :
    ALV Grid container
    w_alv_container TYPE REF TO cl_gui_custom_container,
    ALV Grid
    w_alv_grid      TYPE REF TO cl_gui_alv_grid,
    w_layo          TYPE        lvc_s_layo,     "For layout
    wt_fieldcat     TYPE        lvc_t_fcat,     "For field catalog
    okcode          TYPE         okcode,        "OK Code
    w_to(2)         TYPE         c,
    w_title         TYPE        string.
    ---- START OF SELECTION SCREEN -
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    Billing Date
    SELECT-OPTIONS: s_fkdat FOR vbrk-fkdat MEMORY ID vf OBLIGATORY no intervals.
    SELECTION-SCREEN:SKIP 1.
    SELECTION-SCREEN: END OF BLOCK b1.
    ---- END OF SELECTION SCREEN -
    ----   EVENT START-OF-SELECTION  -
    START-OF-SELECTION.
    Get billing data from Delivery header(VBRK) and item (VBRP)
    PERFORM get_billing_data.
    Get ship-to country
    PERFORM get_ship_to_data.
    Get material group description 3
    PERFORM get_material_group_3.
    Get material group description 4
    PERFORM get_material_group_4.
    Form the ALV Grid title
    PERFORM form_title.
    Process data
    PERFORM process_data.
    Populate text descriptions
    PERFORM populate_description.
    ----   EVENT END-OF-SELECTION  -
    END-OF-SELECTION.
    Set the text to when date high is there
    IF NOT s_fkdat-high IS INITIAL.
    w_to = 'to'(c16).
    ENDIF.
    Call the scren 9000 for ALV Display
    CALL SCREEN 9000.
    *&      Form  get_billing_data
    Get billing data from Delivery header(VBRK) and item (VBRP)
    & store in internal table it_vbrk_vbrp
    FORM get_billing_data .
    REFRESH: it_vbrk_vbrp.
    Select Billing data by joining VBRK & VBRP and store in it_vbrk_vbrp
    SELECT a~vbeln
    b~posnr
    b~aubel
    a~waerk
    b~mvgr1
    b~mvgr3
    b~mvgr4
    b~matnr
    b~ntgew
    b~gewei
    b~kzwi1
    b~kursk
    FROM vbrk AS a INNER JOIN vbrp AS b
    ON avbeln = bvbeln
    INTO TABLE it_vbrk_vbrp
    WHERE a~fkdat IN s_fkdat
    Consider only non-deleted document
    AND fksto = space
    Billing doc type should be ZXTB
    AND fkart = 'ZXTB'
    AND pstyv = c_zxto.
    *IF sy-subrc <> 0.
    *MESSAGE i999(zttl) WITH 'No data is there'(m06).
    *LEAVE LIST-PROCESSING.
    *ENDIF.
    ENDFORM.                    " get_billing_data
    *&      Form  get_ship_to_data
    Get Ship-To party data
    FORM get_ship_to_data .
    DATA: l_it_vbpa TYPE STANDARD TABLE OF ty_vbpa.
    REFRESH: it_vbpa, it_t005t.
    IF NOT it_vbrk_vbrp[] IS INITIAL.
    SELECT vbeln
    land1
    FROM vbpa
    INTO TABLE it_vbpa
    FOR ALL ENTRIES IN it_vbrk_vbrp
    WHERE vbeln = it_vbrk_vbrp-aubel
    AND posnr = c_000000
    AND parvw = c_ship_to.
    IF sy-subrc <> 0.
    MESSAGE i999(zttl) WITH 'Exporter country not maintained'(m02).
    LEAVE LIST-PROCESSING.
    ELSE.
    SORT it_vbpa BY vbeln.
    Create an unique and sorted driver table
    l_it_vbpa[] = it_vbpa[].
    SORT l_it_vbpa BY land1.
    DELETE ADJACENT DUPLICATES FROM l_it_vbpa COMPARING land1.
    IF NOT l_it_vbpa[] IS INITIAL.
    Get the country description from T005t table
    SELECT land1
    landx
    FROM t005t
    INTO TABLE it_t005t
    FOR ALL ENTRIES IN l_it_vbpa
    WHERE spras = c_e
    AND  land1 = l_it_vbpa-land1.
    IF sy-subrc = 0.
    SORT it_t005t BY land1.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM.                    " get_ship_to_data
    *&      Form  get_material_group_3
    Get material group 3
    FORM get_material_group_3 .
    DATA: l_it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.
    REFRESH: it_tvm3t.
    Create an unique and sorted driver table
    l_it_vbrk_vbrp[] = it_vbrk_vbrp[].
    SORT l_it_vbrk_vbrp BY mvgr3.
    DELETE ADJACENT DUPLICATES FROM l_it_vbrk_vbrp COMPARING mvgr3.
    IF NOT l_it_vbrk_vbrp[] IS INITIAL.
    SELECT mvgr3
    bezei
    FROM tvm3t
    INTO TABLE it_tvm3t
    FOR ALL ENTRIES IN l_it_vbrk_vbrp
    WHERE mvgr3 = l_it_vbrk_vbrp-mvgr3.
    IF sy-subrc = 0.
    SORT it_tvm3t BY mvgr3.
    ENDIF.
    ENDIF.
    ENDFORM.                    " get_material_group_3
    *&      Form  get_material_group_4
    Get material group 4
    FORM get_material_group_4 .
    DATA: l_it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.
    REFRESH: it_tvm4t.
    Create an unique and sorted driver table
    l_it_vbrk_vbrp[] = it_vbrk_vbrp[].
    SORT l_it_vbrk_vbrp BY mvgr4.
    DELETE ADJACENT DUPLICATES FROM l_it_vbrk_vbrp COMPARING mvgr4.
    IF NOT l_it_vbrk_vbrp[] IS INITIAL.
    SELECT mvgr4
    bezei
    FROM tvm4t
    INTO TABLE it_tvm4t
         FOR ALL ENTRIES IN l_it_vbrk_vbrp
         WHERE mvgr4 = l_it_vbrk_vbrp-mvgr4.
         IF sy-subrc = 0.
           SORT it_tvm4t BY mvgr4.
         ENDIF.
       ENDIF.
    ENDFORM.                    " get_material_group_4
    *&      Form  process_data
    Process the data and do summation and populate final display table
    FORM process_data .
       LOOP AT it_vbrk_vbrp INTO wa_vbrk_vbrp.
         CLEAR: wa_data, wa_vbpa.
         READ TABLE it_vbpa INTO wa_vbpa WITH KEY
                                      vbeln = wa_vbrk_vbrp-aubel
                                      BINARY SEARCH.
         IF sy-subrc = 0.
           wa_data-land1 = wa_vbpa-land1.
         ENDIF.
         wa_data-mvgr3 = wa_vbrk_vbrp-mvgr3.
         wa_data-mvgr4 = wa_vbrk_vbrp-mvgr4.
    Do an unit conversion of the quamtity
         CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
           EXPORTING
             input                      = wa_vbrk_vbrp-ntgew
         NO_TYPE_CHECK              = 'X'
         ROUND_SIGN                 = ' '
            unit_in                    = wa_vbrk_vbrp-gewei
            unit_out                   = 'TO' "Metric tonn
          IMPORTING
            output                     = wa_vbrk_vbrp-ntgew
          EXCEPTIONS
            conversion_not_found       = 1
            division_by_zero           = 2
            input_invalid              = 3
            output_invalid             = 4
            overflow                   = 5
            type_invalid               = 6
            units_missing              = 7
            unit_in_not_found          = 8
            unit_out_not_found         = 9
            OTHERS                     = 10.
         IF sy-subrc <> 0.
           wa_vbrk_vbrp-ntgew = wa_vbrk_vbrp-ntgew.
         ENDIF.
    Convert the currency from Customer currency to local
    currency by multiplying with kursk
         wa_vbrk_vbrp-kzwi1 =  wa_vbrk_vbrp-kzwi1 * wa_vbrk_vbrp-kursk.
    Convert the amount to Lacks by dividing with 100000
        wa_vbrk_vbrp-kzwi1 = wa_vbrk_vbrp-kzwi1 / 100000.       "DV1K905028
    When MVGR1 is between A to F use the amount as TEA_BAG
         IF wa_vbrk_vbrp-mvgr1 BETWEEN 'A' AND 'F'.
           wa_data-ntgew_tea_bag = wa_vbrk_vbrp-ntgew.
           wa_data-kzwi1_tea_bag = wa_vbrk_vbrp-kzwi1.
         ENDIF.
    When MVGR1 is between G to L use the amount as TEA_BAG
         IF wa_vbrk_vbrp-mvgr1 BETWEEN 'G' AND 'L'.
           wa_data-ntgew_pkt_tea = wa_vbrk_vbrp-ntgew.
           wa_data-kzwi1_pkt_tea = wa_vbrk_vbrp-kzwi1.
         ENDIF.
    When MVGR1 is between G to L use the amount as TEA_BAG
         IF wa_vbrk_vbrp-mvgr1 = 'M'.
           wa_data-ntgew_bulk_tea = wa_vbrk_vbrp-ntgew.
           wa_data-kzwi1_bulk_tea = wa_vbrk_vbrp-kzwi1.
         ENDIF.
         COLLECT wa_data INTO it_data.
       ENDLOOP.
    ENDFORM.                    " process_data
    *&      Form  populate_description
    Populate the description fields
    FORM populate_description .
       LOOP AT it_data INTO wa_data.
         CLEAR: wa_t005t.
         READ TABLE it_t005t INTO wa_t005t WITH KEY land1 = wa_data-land1
                                                BINARY SEARCH.
         IF sy-subrc = 0.
           wa_data-landx = wa_t005t-landx.
         ENDIF.
    Read description of Material group 3
         CLEAR wa_tvm3t.
         READ TABLE it_tvm3t INTO wa_tvm3t WITH KEY
                                  mvgr3 = wa_data-mvgr3
                                  BINARY SEARCH.
         IF sy-subrc = 0.
           wa_data-bezei3 = wa_tvm3t-bezei.
         ENDIF.
    Read description of Material group 4
         CLEAR wa_tvm4t.
         READ TABLE it_tvm4t INTO wa_tvm4t WITH KEY
                                  mvgr4 = wa_data-mvgr4
                                  BINARY SEARCH.
         IF sy-subrc = 0.
           wa_data-bezei4 = wa_tvm4t-bezei.
         ENDIF.
    Get the grand totals
         wa_data-ntgew_tot = wa_data-ntgew_tea_bag
                  + wa_data-ntgew_pkt_tea
                  + wa_data-ntgew_bulk_tea.
         wa_data-kzwi1_tot = wa_data-kzwi1_tea_bag
                  + wa_data-kzwi1_pkt_tea
                  + wa_data-kzwi1_bulk_tea.
         MODIFY it_data FROM wa_data TRANSPORTING landx
                                                  bezei3
                                                  bezei4
                                                  ntgew_tot
                                                  kzwi1_tot.
    Summattion of grand totals
         w_tot_ntgew_tea_bag  = w_tot_ntgew_tea_bag  + wa_data-ntgew_tea_bag.
         w_tot_ntgew_pkt_tea  = w_tot_ntgew_pkt_tea  + wa_data-ntgew_pkt_tea.
         w_tot_ntgew_bulk_tea  = w_tot_ntgew_bulk_tea  + wa_data-ntgew_bulk_tea.
         w_tot_ntgew_tot  = w_tot_ntgew_tot  + wa_data-ntgew_tot.
         w_tot_kzwi1_tea_bag  = w_tot_kzwi1_tea_bag  + wa_data-kzwi1_tea_bag.
         w_tot_kzwi1_pkt_tea  = w_tot_kzwi1_pkt_tea  + wa_data-kzwi1_pkt_tea.
         w_tot_kzwi1_bulk_tea  = w_tot_kzwi1_bulk_tea  + wa_data-kzwi1_bulk_tea.
         w_tot_kzwi1_tot  = w_tot_kzwi1_tot  + wa_data-kzwi1_tot.
       ENDLOOP.
    Append a grand Total row at the end
       CLEAR wa_data.
       wa_data-landx = 'Grand Total:'.
       wa_data-ntgew_tea_bag = w_tot_ntgew_tea_bag.
       wa_data-ntgew_pkt_tea = w_tot_ntgew_pkt_tea.
       wa_data-ntgew_bulk_tea = w_tot_ntgew_bulk_tea.
       wa_data-ntgew_tot = w_tot_ntgew_tot.
       wa_data-kzwi1_tea_bag = w_tot_kzwi1_tea_bag.
       wa_data-kzwi1_pkt_tea = w_tot_kzwi1_pkt_tea.
       wa_data-kzwi1_bulk_tea = w_tot_kzwi1_bulk_tea.
       wa_data-kzwi1_tot = w_tot_kzwi1_tot.
       wa_data-line_color    = 'C310'.
       APPEND wa_data TO it_data.
    ENDFORM.                    " populate_description
    *&      Module  STATUS_9000  OUTPUT
    Initialise PF-STATUS and title
    MODULE status_9000 OUTPUT.
       SET PF-STATUS 'MAIN9000'.
       SET TITLEBAR 'TITLE_9000'.
    ENDMODULE.                 " STATUS_9000  OUTPUT
    *&      Module  initialize_9000  OUTPUT
          text
    MODULE initialize_9000 OUTPUT.
    Call the ALV grid to display data
    SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE text-001.
      Billing Date
    SELECT-OPTIONS: s_fkdat1 FOR vbrk-fkdat MEMORY ID vf OBLIGATORY NO-EXTENSION.
    SELECTION-SCREEN:SKIP 1.
    SELECTION-SCREEN: END OF BLOCK B2.
       PERFORM display_alv_grid.
    ENDMODULE.                 " initialize_9000  OUTPUT
    *&      Module  USER_COMMAND_9000  INPUT
    Module to handle User Command
    MODULE user_command_9000 INPUT.
       CASE okcode.
         WHEN 'BACK'.
           SET SCREEN 0.
           CLEAR okcode.
           LEAVE SCREEN.
         WHEN 'CANCEL'.
           SET SCREEN 0.
           CLEAR okcode.
           LEAVE SCREEN.
         WHEN 'EXIT'.
           CLEAR okcode.
           LEAVE PROGRAM.
         WHEN OTHERS.
       ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
    *&      Form  display_alv_grid
    Display the data in ALV Grid
    FORM display_alv_grid .
       IF w_alv_container IS INITIAL.
    Create the alv container object
         CREATE OBJECT w_alv_container
           EXPORTING
             container_name = 'ALV_GRID'
           EXCEPTIONS
               cntl_error                  = 1
               cntl_system_error           = 2
               create_error                = 3
               lifetime_error              = 4
               lifetime_dynpro_dynpro_link = 5
               OTHERS                      = 6.
         IF sy-subrc <> 0.
           MESSAGE e999(zttl) WITH 'Problem in ALV display'(t04).
         ENDIF.
    Create the ALV grid object. The parent is the ALV container
         CREATE OBJECT w_alv_grid
           EXPORTING
             i_parent = w_alv_container
           EXCEPTIONS
             error_cntl_create = 1
             error_cntl_init   = 2
             error_cntl_link   = 3
             error_dp_create   = 4
             OTHERS            = 5.
         IF sy-subrc <> 0.
           MESSAGE e999(zttl) WITH 'Problem in ALV display'(t04).
         ENDIF.
    This subrotine creates the field catalog and
    store in internal table lt_fieldcat
         PERFORM prepare_fieldcat CHANGING wt_fieldcat.
    Layout design
         w_layo-no_toolbar = ''.
    Not to allow totaling feature
         w_layo-no_totline = c_x.
    Report title
       w_layo-grid_title = text-004.
         w_layo-grid_title = w_title.
         w_layo-zebra      = c_x.    "Alternating line color (striped)
         w_layo-cwidth_opt = c_x.    "Optimize column width
         w_layo-sel_mode   = 'A'.    "Selection Mode
    Name of the color field
         w_layo-info_fname = 'LINE_COLOR'."For row color
    Call the method to display the data in ALV grid
         CALL METHOD w_alv_grid->set_table_for_first_display
           EXPORTING
             i_save                        = 'A'
             is_layout                     = w_layo
           CHANGING
             it_outtab                     = it_data[]
             it_fieldcatalog               = wt_fieldcat
           EXCEPTIONS
             invalid_parameter_combination = 1
             program_error                 = 2
             too_many_lines                = 3
             OTHERS                        = 4.
         IF sy-subrc <> 0.
           MESSAGE e999(zttl) WITH text-t04.
         ENDIF.
       ELSE.
    If the container & grid object is alreadt there reuse them
         CALL METHOD w_alv_grid->refresh_table_display
           EXCEPTIONS
             finished = 1
             OTHERS   = 2.
         IF sy-subrc <> 0.
           MESSAGE e999(zttl) WITH text-t04.
         ENDIF.
       ENDIF.
       IF okcode = 'CANCEL'.
         EXIT.
       ENDIF.
    ENDFORM.                    " display_alv_grid
    *&      Form  prepare_fieldcat
    Prepare the list of fields to be displayed                          *
         <--P_WT_FIELDCAT  text
    FORM prepare_fieldcat  CHANGING pt_fieldcat TYPE lvc_t_fcat.
       DATA : lx_fcat TYPE lvc_s_fcat.
       REFRESH: pt_fieldcat.
    **List of fields to be displayed should be added in pt_fieldcat
    Customer PO no
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'LANDX'.
       lx_fcat-ref_field = 'T005T'.
       lx_fcat-ref_table = 'T005T'.
       lx_fcat-coltext = 'Market Name'(c01).
       lx_fcat-seltext = text-c01.
       APPEND lx_fcat TO pt_fieldcat.
    Flavour type
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'BEZEI3'.
       lx_fcat-ref_field = 'BEZEI'.
       lx_fcat-ref_table = 'TVM3'.
       lx_fcat-coltext = 'Flavour Type'(c02).
       lx_fcat-seltext = text-c02.
       APPEND lx_fcat TO pt_fieldcat.
    Tea type
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'BEZEI4'.
       lx_fcat-ref_field = 'BEZEI4'.
       lx_fcat-ref_table = 'TVM4'.
       lx_fcat-coltext = 'Tea Type.'(c03).
       lx_fcat-seltext = text-c03.
       APPEND lx_fcat TO pt_fieldcat.
    Tea Bag Quantity in KG
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'NTGEW_TEA_BAG'.
       lx_fcat-ref_field = 'NTGEW'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Tea Bag(MT)'(c04).
       lx_fcat-seltext = text-c04.
       APPEND lx_fcat TO pt_fieldcat.
    PKT Tea  Quantity in KG
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'NTGEW_PKT_TEA'.
       lx_fcat-ref_field = 'NTGEW'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'PKT Tea(MT)'(c05).
       lx_fcat-seltext = text-c05.
       APPEND lx_fcat TO pt_fieldcat.
    Bulk Tea  Quantity in MT
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'NTGEW_BULK_TEA'.
       lx_fcat-ref_field = 'NTGEW'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Bulk Tea(MT)'(c06).
       lx_fcat-seltext = text-c06.
       APPEND lx_fcat TO pt_fieldcat.
    Total Quantity in MT
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'NTGEW_TOT'.
       lx_fcat-ref_field = 'NTGEW'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Total(MT)'(c07).
       lx_fcat-seltext = text-c07.
       APPEND lx_fcat TO pt_fieldcat.
    Tea Bag Quantity in KG
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'KZWI1_TEA_BAG'.
       lx_fcat-ref_field = 'KZWI1'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Tea Bag(FOB-Lacs)'(c08).
       lx_fcat-seltext = text-c08.
       APPEND lx_fcat TO pt_fieldcat.
    PKT Tea  Price in Lakh
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'KZWI1_PKT_TEA'.
       lx_fcat-ref_field = 'KZWI1'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'PKT Tea(FOB-Lacs)'(c09).
       lx_fcat-seltext = text-c09.
       APPEND lx_fcat TO pt_fieldcat.
    PKT Tea  Quantity in KG
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'KZWI1_BULK_TEA'.
       lx_fcat-ref_field = 'KZWI1'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Bulk Tea(FOB-Lacs)'(c10).
       lx_fcat-seltext = text-c10.
       APPEND lx_fcat TO pt_fieldcat.
    Total amount
       CLEAR lx_fcat.
       lx_fcat-fieldname = 'KZWI1_TOT'.
       lx_fcat-ref_field = 'KZWI1'.
       lx_fcat-ref_table = 'VBRP'.
       lx_fcat-coltext = 'Total(FOB-Lacs)'(c11).
       lx_fcat-seltext = text-c11.
       APPEND lx_fcat TO pt_fieldcat.
    ENDFORM.                    " prepare_fieldcat
    *&      Form  form_title
    Form the ALV Title
    FORM form_title .
       DATA: l_date(10) TYPE c.
       CONCATENATE s_fkdat-low6(2)  s_fkdat-low4(2)  s_fkdat-low(4)
       INTO l_date SEPARATED BY '/'.
       CONCATENATE 'TTD - Statement of Export' '-From' l_date INTO
    w_title SEPARATED BY space.
       CLEAR l_date.
       IF NOT s_fkdat-high IS INITIAL.
         CONCATENATE s_fkdat-high6(2)  s_fkdat-high4(2)  s_fkdat-high(4)
         INTO l_date SEPARATED BY '/'.
         CONCATENATE w_title 'to' l_date INTO w_title SEPARATED BY space.
       ENDIF.
    ENDFORM.                    " form_title

  • Is exist restriction for select-options.........?

    is exist restriction for select-options?
    for example:
    <b> data: ftxt04(4).
    select-options: txt04 for ftxt04.</b>

    Hi,
    You can restrict select-options.
    SELECT-OPTIONS : S_VKORG FOR TVKO-VKORG MEMORY ID VKO.
    Form F1000_RESTRICT_VKORG.
    INITIALIZATION.
    PERFORM F1000_RESTRICT_VKORG.
    Define the object to be passed to the RESTRICTION parameter
    DATA lw_restrict TYPE SSCR_RESTRICT.
    Auxiliary objects for filling RESTRICT
      DATA lw_opt_list TYPE sscr_opt_list.
      DATA lw_***      TYPE sscr_***.
    Assign selection screen objects to option list and sign
    NOINTERVLS: BT and NB not allowed
      CLEAR lw_opt_list.
      MOVE 'NOINTERVLS' TO lw_opt_list-name.
      MOVE 'X' TO: lw_opt_list-options-cp,
                   lw_opt_list-options-eq,
                   lw_opt_list-options-ge,
                   lw_opt_list-options-gt,
                   lw_opt_list-options-le,
                   lw_opt_list-options-lt,
                   lw_opt_list-options-ne,
                   lw_opt_list-options-np.
      APPEND lw_opt_list TO lw_restrict-opt_list_tab.
    KIND = 'S':
      CLEAR lw_***.
      MOVE:  'S'          TO  lw_***-kind,
             'S_VKORG'    TO  lw_***-name,
             'I'          TO  lw_***-sg_main,
             '*'          TO  lw_***-sg_addy,
             'NOINTERVLS' TO  lw_***-op_main.
      APPEND lw_***  TO  lw_restrict-***_tab.
      CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
           EXPORTING
                restriction            = lw_restrict
           EXCEPTIONS
                too_late               = 1
                repeated               = 2
                selopt_without_options = 3
                selopt_without_signs   = 4
                invalid_sign           = 5
                empty_option_list      = 6
                invalid_kind           = 7
                repeated_kind_a        = 8
                OTHERS                 = 9.
      IF sy-subrc <> 0.     "Restriction error encountered for Select
                             "Option
        MESSAGE  I001 WITH 'ERROR IN SELECT OPTION'."ERROR IN SELECT OPTION
      ENDIF.
    endform.                    " F1000_RESTRICT_VKORG

  • Dynamical declaration of SELECT-OPTIONS / RANGE possible

    Hi fellow programmers,
    does anybody know whether there is a way to declare a
    SELECT-OPTION respectively a RANGE dynamically during
    runtime? I have both the name of the range to be created
    and the DDIC-referencefield stored in variables.
    Thanks in advance for your appreciated help.
    Andreas

    Hi Andreas,
    DYNAMIC PROGAM SHOWS SELECTION-SCREEN.
    1 Sap does not allow execution of dynamic programs from memory.
      (dynamic means, only in memory, not in database)
    2. However, it allows execution of dynamic FORM/ENDFORM.
    3. But your requirement is of selection-screen using parameters and select-options.
    4. Hence, we can use the concept of DYNAMIC PROGRAM
       (build the program code in an internal table)
       using command
       INSERT REPORT 'ZDYN01' FROM itab.
       THIS WILL SAVE / OVERWRITE THE PRGRAM IN DB.
       HENCE, BE CAUTIOUS.
    5. Just Copy/Paste this sample program
       It will generate a dynamic program called ZDYN01.
       it will also execute it and
       SHOW SELECTION-SCREEN
       of the DYNAMIC PROGRAM.
    6. You may build up yuour own logic
        of constructing selection-screen from   
         required data stored in tables.
    7.
    REPORT abc.
    Data
    DATA : BEGIN OF itab OCCURS 0,
           l(72) TYPE c,
           END OF itab.
    DATA : prog(8) TYPE c.
    Make Dynamic Program
    CLEAR itab.
    itab-l = 'REPORT ABC.'.
    APPEND itab.
    itab-l = 'PARAMETERS : MATNR LIKE MARA-MATNR.'.
    APPEND itab.
    itab-l = 'START-OF-SELECTION.'. APPEND itab.
    itab-l = 'WRITE :/  MATNR.'. APPEND itab.
    Generate Program
    INSERT REPORT 'ZDYN01' FROM itab.
    COMMIT WORK. "----- COMMIT NECESSARY FOR DB
    *------ Call Report
    SUBMIT zdyn01 VIA SELECTION-SCREEN.
    HOPE THE ABOVE HELPS.
    Regards,
    Amit M.

  • Select-Option and Dump

    Hi All,
    I have select-option on selection screen.
    Entered 7000 values to select-option.
    When executed it dumps, but small input values report is executed.
    Is their any limitation for input values in select-option.
    Moderator message: FAQ, please search for previous discussions of this topic.
    Edited by: Thomas Zloch on Sep 14, 2011 3:02 PM

    Hi,
    problem is not with select option, it can contain milions of entries.
    You are propably using select option in where condition of your select statement. You should keep limit about 1000-2000 entries, it depends on db system and memory.
    Regards
    Matus

Maybe you are looking for