Selection Screen Layout.

Hi,
I need to layout a selection screen like the one below:
RadioButton1
    Parameter1
    Select-Option1
RadioButton2
RadioButton3
Items (Parameter1 and Select-Option1) should be disabled when RadioButton1 is not selected.
I cant quite figure out how i would insert (Parameter1 and Select-Option1) between RadioButton1 and 2. I dont want to waste precious time to do research for this, so I opted to ask the experts(you..).
Thanks,
Frank

Hi
*& Report  ZNNR_SAMPLE22
REPORT  ZNNR_SAMPLE22 NO STANDARD PAGE HEADING MESSAGE-ID ZNNR LINE-SIZE 100 LINE-COUNT 65(4).
******DATA DECLARATIONS**********
DATA : BEGIN OF IT_PLANT OCCURS 0,
        MATNR LIKE MARA-MATNR,
        WERKS LIKE MARC-WERKS,
        PSTAT LIKE MARC-PSTAT,
        EKGRP LIKE MARC-EKGRP,
       END OF IT_PLANT.
DATA : BEGIN OF IT_PONO OCCURS 0,
        EBELN LIKE EKKO-EBELN,
        EBELP LIKE EKPO-EBELP,
        MATNR LIKE EKPO-MATNR,
        WERKS LIKE EKPO-WERKS,
        LGORT LIKE EKPO-LGORT,
       END OF IT_PONO.
TABLES EKKO.
********END OF DATA DECLARATIONS*********
********SELECTION SCREEN DESIGN ***********
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R3 RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND UC1.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R3.
SELECTION-SCREEN END OF LINE.
PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN NO INTERVALS MODIF ID S1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R1 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
******END OF SELECTION SCREEN DESIGN****************
***********SCREEN MODIFICATIONS*******************
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF R3 EQ 'X' AND SCREEN-GROUP1 EQ 'S1'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
********END OF SCREEN MODIFICATIONS*****************
execute this one

Similar Messages

  • Selection screen layout Issue

    i have a requirement where i have to customize the layout dynamically in the report output.the layout should be changed as per the selection screen field entry.is this possible?

    Hi,
    Check this one, How it is changing dynamically
    TABLES : mara,marc.
    ************************Selection screen fields******************************************
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS    : p_meth1  RADIOBUTTON GROUP g1 USER-COMMAND g1,
                    p_meth2  RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK matnr
                              WITH FRAME TITLE text-002.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS : so_matnr FOR marc-matnr MODIF ID m1.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS : so_werks FOR marc-werks MODIF ID m1 .
    SELECTION-SCREEN END OF BLOCK matnr.
    SELECTION-SCREEN BEGIN OF BLOCK file WITH FRAME TITLE text-003.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS: p_fpath TYPE ibipparms-path MODIF ID m2 LOWER CASE.
    SELECTION-SCREEN END OF BLOCK file.
    SELECTION-SCREEN BEGIN OF BLOCK date WITH FRAME TITLE text-004.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS     : p_date TYPE datuv.                         "CCT51576.
    SELECTION-SCREEN END OF BLOCK date.
    ***********************Screen Validation*********************************************
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        CASE screen-group1.
          WHEN 'M1'.
            IF p_meth1 <> 'X'.
              screen-active = 1.
            ENDIF.
            IF p_meth2 = 'X'.
              screen-active = 0.
            ENDIF.
          WHEN 'M2'.
            IF p_meth2 = 'X'.
              screen-active = 1.
            ELSE.
              screen-active = 0.
            ENDIF.
            IF p_meth1 = 'X'.
              screen-active = 0.
            ENDIF.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.

  • F4 selection screen layout - WAD 7

    Hi guys,
    We have a simple selection screen over a variable and we have a couple of questions regarding the layout of the selection screen.
    1. Can we change the default to "Search" instead of "All"?
    2.  When we scroll down in the list the width of the columns changes according to the data, is there a way to determine the column width?
    Regards
    Shlomi

    Hello Shlomi Weiss,
    Unfortunatelly this is not possible to change. This is working by design.
    Thanks for the compreention.
    Diego Ferrary

  • Query regarding selection screen layout

    i want to knw how to put a blank line / how to skip a line in selection screen...
    like
    in Block 1
    Presentn filepath
    Application filepath
    (1 line skipped)
    Log filepath
    end of block 1

    Hi ,
    use <b>SELECTION-SCREEN SKIP 2</b>. statement.If u want to skip two lines .
    check this code.
    selection-screen begin of block B1 with frame title text-d01.
    selection-screen SKIP 3.
    parameters : p_lifnr type lifnr.
    parameters : p_kunnr type kunnr.
    parameters : p_count(2) type n.
    selection-screen SKIP 3.
    selection-screen end of block B1.
    regards
    reena

  • SAP Query selection screen issues after ECC upgrade

    Hi all
    We have a custom query created and assigned to a custom transaction code, which after upgrade to ECC 6.0 we find that the selection screen layout is different from what was available in 4.6C system.
    All the fields required are available.
    However, the sequence of the fields on the screen is different from the 4.6C after the upgrade.
    Can anyone help identify the issue so that the issue can be resolved?
    Thanks
    Vinodh S

    Hi N_niki
    There is no resolution as such.
    We had raised a Customer message with SAP and were informed that this was expected as the procedure to execute the reports was changed in ECC when compared to 4.6 (technical changes) and hence this issue shall remain for some queries wherein the old changes need to be brought back using an option in the SAP Query.
    Please refer to SAP Note # 723577 which could provide a better explanation for the issue.
    Hope this helps.
    Thanks
    Vinodh Sudhakaran

  • Unable to save the ALV layout variant and display of selection screen on F4

    Hi All,
    The end user wants to directly select the layout variant (SLIS_VARI). I have used the following code to display the layout variant on selection screen. But, I am unable to save the variant on ALV. Whenever I am trying to select the layout variants (by doing F4 on selection screen) its displaying "No Layout found".
    Following is the code for displaying layout variant:
    PARAMETERS: p_var TYPE slis_vari.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
      PERFORM f4_variant CHANGING p_var.
    FORM f4_variant  CHANGING c_variant TYPE slis_vari.
      DATA: ls_variant TYPE disvariant,
                l_exit     TYPE char1.
      ls_variant-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = ls_variant
          i_save     = 'A'
        IMPORTING
          e_exit     = l_exit
          es_variant = ls_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF l_exit EQ space.
          c_variant = ls_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f4_variant
    and following is the code for displaying the ALV:
    FORM edition_alv.
      ws_variant2 = ls_variant.
    * Call ALV editor in list mode
      IF p_list = 'X'.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
            i_callback_program      = ws_extract1-report
            i_callback_user_command = ws_user_command
            is_layout               = ws_layout
            it_fieldcat             = wt_fieldcat
            it_sort                 = wt_sort
            i_save                  = 'A'
            is_variant              = ws_variant2
            it_events               = wt_events[]
          TABLES
            t_outtab                = wt_edition.
    * Call ALV editor in grid mode
      ELSE.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program      = ws_extract1-report
            i_callback_user_command = ws_user_command
            it_fieldcat             = wt_fieldcat
            it_sort                 = wt_sort
            i_save                  = 'A'
            is_variant              = ws_variant2
            it_events               = wt_events[]
          TABLES
            t_outtab                = wt_edition.
      ENDIF.
    ENDFORM.  
    I am not sure whats going wrong, but I am unable to save variants.
    Please help.
    Thanks,
    Vishal.

    The F4 will display you the existing layouts only. So you need to save the layout first & then execute the report again & check if you are getting F4 values for that field.
    The Layout needs to get stored with variant.
    Regards,
    Mahesh

  • How to dispay report with layout option in selection screen?

    Hi all,
    I have designed a report which also has a list box in the selection screen for the type of saved  layout that users have saved. I want the report to be displayed in the  layout that the user has entered.
    Eg:  if user chooses \RP from the listbox in the selection screen; then the layout format for \RP should be displayed as output of the report.Can anyone tell me how to do this?Thanks in Advance.

    Hi ,
    parameters:p_vari type disvariant.
    data: v_save type c.
    v_save = 'A'.
    data:i_variant type disvariant.
    write the code in the At selection screen on value request p_vari.use the FM reuse_alv_variant_f4.
    then in the at selection screen check weather the selected variant is existed by using the FM reuse_alv_variant_existance
    and in the main GRID FM pass the variant internal table.
    or check BALV* in the Se38 for examples
    Regards,
    Bharani,

  • To Load ALV Layout in report selection screen

    Hi...
    I want the selection screen option for user so that he can select any of the saved layouts.
    I have done some coding after refering to some threads in here.But I can't proceed further...plz help
    <b>selection screen</b>
    SELECTION-SCREEN BEGIN OF BLOCK 006 WITH FRAME TITLE text-006.
    PARAMETERS: p_layout LIKE disvariant-variant.      " layout
    SELECTION-SCREEN END OF BLOCK 006.
    <b>data declarations</b>
    DATA: wa_variant TYPE disvariant.
    DATA: w_variant_save TYPE c VALUE 'A'.
    DATA: gs_variant TYPE disvariant.
    DATA: gs_layout TYPE lvc_s_layo.
    DATA: g_repid LIKE sy-repid.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
      PERFORM variant_input_help.
    FORM variant_input_help .
    DATA: tl_dynpfields TYPE TABLE OF dynpread.
    DATA: wl_exit TYPE c.
    DATA: wal_variant LIKE wa_variant.
    DATA: wal_dynpfields TYPE dynpread.
    Get values from the selection screen to determine layout set
    wal_dynpfields-fieldname = p_layout.
    APPEND wal_dynpfields TO tl_dynpfields.
    CALL FUNCTION 'DYNP_VALUES_READ'
      EXPORTING
        DYNAME                         = sy-cprog
        DYNUMB                         = '1000'
      TRANSLATE_TO_UPPER             = ' '
      REQUEST                        = ' '
      PERFORM_CONVERSION_EXITS       = ' '
      PERFORM_INPUT_CONVERSION       = ' '
      DETERMINE_LOOP_INDEX           = ' '
      TABLES
        DYNPFIELDS                     = tl_dynpfields
    EXCEPTIONS
      INVALID_ABAPWORKAREA           = 1
      INVALID_DYNPROFIELD            = 2
      INVALID_DYNPRONAME             = 3
      INVALID_DYNPRONUMMER           = 4
      INVALID_REQUEST                = 5
      NO_FIELDDESCRIPTION            = 6
      INVALID_PARAMETER              = 7
      UNDEFIND_ERROR                 = 8
      DOUBLE_CONVERSION              = 9
      STEPL_NOT_FOUND                = 10
      OTHERS                         = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
      LOOP AT tl_dynpfields INTO wal_dynpfields.
        CASE wal_dynpfields-fieldname.
          WHEN 'p_layout'.
            wa_variant-variant = wal_dynpfields-fieldvalue.
        ENDCASE.
      ENDLOOP.
      wa_variant-report = sy-repid.
      wa_variant-variant = p_layout.
      wa_variant-username =  sy-uname.
    **Invoke function to provide drop down entries
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT                = wa_variant
        I_TABNAME_HEADER          =
        I_TABNAME_ITEM            =
        IT_DEFAULT_FIELDCAT       =
          I_SAVE                    = w_variant_save
        I_DISPLAY_VIA_GRID        = ' '
       IMPORTING
          E_EXIT                    = wl_exit
          ES_VARIANT                = wal_variant
        EXCEPTIONS
          NOT_FOUND                 = 1
          PROGRAM_ERROR             = 2
          OTHERS                    = 3
      IF SY-SUBRC IS INITIAL.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
        IF wl_exit IS INITIAL.
          p_layout = wal_variant-variant.
        ENDIF.
      ELSE.
        message I033 WITH TEXT-034.
      ENDIF.
    *gs_variant-variant = p_layout.
    *gs_variant-report = sy-repid.
      FREE: tl_dynpfields.
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        I_INTERFACE_CHECK                 = ' '
        I_BYPASSING_BUFFER                = ' '
        I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = g_repid
        I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = ' '
        I_CALLBACK_TOP_OF_PAGE            = ' '
        I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      =
        I_GRID_SETTINGS                   =
        <b>IS_LAYOUT                       </b>  = <b>??</b>
      <b>  IT_FIELDCAT                       = ??</b>
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
        IT_SORT                           =
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
         IS_VARIANT                        = wal_variant
        IT_EVENTS                         =
        IT_EVENT_EXIT                     =
        IS_PRINT                          =
        IS_REPREP_ID                      =
        I_SCREEN_START_COLUMN             = 0
        I_SCREEN_START_LINE               = 0
        I_SCREEN_END_COLUMN               = 0
        I_SCREEN_END_LINE                 = 0
        I_HTML_HEIGHT_TOP                 = 0
        I_HTML_HEIGHT_END                 = 0
        IT_ALV_GRAPHICS                   =
        IT_HYPERLINK                      =
        IT_ADD_FIELDCAT                   =
        IT_EXCEPT_QINFO                   =
        IR_SALV_FULLSCREEN_ADAPTER        =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           =
        ES_EXIT_CAUSED_BY_USER            =
        TABLES
          <b>T_OUTTAB                          =  </b><b>??</b>
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " variant_input_help
    wat steps shud i take

    Hi ,
    I have used the below FM for layout help,
    data: gs_variant like disvariant,
    gs_variant-report = sy-repid.
        call function 'REUSE_ALV_VARIANT_F4'
          exporting
           is_variant                = gs_variant
           i_save                    = 'A'
           i_display_via_grid        = 'X'
         importing
           es_variant                = gs_variant
         exceptions
           not_found                 = 1
           program_error             = 2
           others                    = 3
        if sy-subrc = 0.
            pa_var = gs_variant-variant.    
        endif.
    Note pa_var is your select options field in the SELECTION SCREEN,
    call function 'REUSE_ALV_GRID_DISPLAY' "
               exporting
                 i_bypassing_buffer                = 'X'
                 i_buffer_active                   = 'X'
                 i_callback_program                = sy-repid
                 i_callback_top_of_page            = 'TOP_OF_PAGE'
                 is_layout                         = gs_layout
                 it_fieldcat                       = gt_fieldcat
                 i_save                            = 'A'
                 is_variant                        = gs_variant
                 it_events                         = gt_events
                tables
                 t_outtab                          = gt_output
               exceptions
                 program_error                     = 1
                 others                            = 2
    hope this helps you.
    Regards,
    Raghavendra

  • Layout in selection screen of Bex report

    Hi Gurus,
    I have a report which is needed by many users.
    Now each user has a different way to use the report
    like SE wise,material wise,payer wise , each with selected key figures.
    Now i have one solution that to create a seperate view for each user, but i dont want to maintain number of views.
    Again i have to schedule the same report for email to diferent users through Enterprise Portal where Views  are not supported
    so can i have any other way to meet this requirement
    Can we have layout selection in bex report selection screen ( as we have in R/3 reports) ?
    ( i m using BI 7.0 and EP 6.0)

    Hi Sonal,
    If you are using EP end, then that can be achieved at there but for the same as u already said that you have to create either views of the query or you have to create seprate query's itself and at the EP end you can define which query you want at Different selection. But at BI end there is as such no option to do so, i mean at query level .
    Thanks
    dipika

  • How can i make the select-option selection screen use screen layout?

    I want to make the selection screen like follows.
    no:  xxxxxx   ~   xxxxxx.
    in the screen painter.
    can any expert tell me.
    thank you very much.

    Hi,
    In layout screen for description use text box and for input fields
    use two i/o box.Try follow like as bello code
    For ex: you are going to give date as a select-option:
    textbox      input/out field box   textbox   input/out field box  
    date      :    fkdat-low                to           fkdat-high
    in data declaretion:
    ranges:  fkdat  for vbrk-fkdat.
    in select query where statement:
         where date ge fkdat-low
         and date le fkdat-high.
    Regards,
    Ramya.

  • Layout default option on the selection screen

    I have given a Select Layout box on the Selection screen of my ALV report. How can I pass the default layout value, already set in the report to the box on the selection screen as the default value.

    DATA: RS_VARIANT LIKE DISVARIANT.
    SELECTION-SCREEN : BEGIN OF BLOCK B10 WITH FRAME TITLE TEXT-024.
        PARAMETERS       : PA_VARI  TYPE SLIS_VARI.
    SELECTION-SCREEN : END OF BLOCK B10.
    FORM ALV_VARIANT_F4  CHANGING P_PA_VARI.
      DATA: "RS_VARIANT LIKE DISVARIANT,
             NOF4       TYPE C,
             G_REPID    TYPE SY-REPID.
      MOVE SY-REPID TO G_REPID.
      CLEAR NOF4.
      LOOP AT SCREEN.
        IF SCREEN-NAME    = PA_VARI.
          IF SCREEN-INPUT = 0.
            NOF4 = 'X'.
          ENDIF.
        ENDIF.
      ENDLOOP.
      RS_VARIANT-REPORT   = G_REPID.
      RS_VARIANT-USERNAME = SY-UNAME.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT = RS_VARIANT
          I_SAVE     = 'A'
        IMPORTING
          ES_VARIANT = RS_VARIANT
        EXCEPTIONS
          OTHERS     = 1.
      IF SY-SUBRC = 0 AND NOF4 EQ SPACE.
        PA_VARI = RS_VARIANT-VARIANT.
      ENDIF.
    ENDFORM.                    " ALV_VARIANT_F4
    Following code is used to get the Layout selection box on the selection screen.

  • Layout Option on Selection Screen For Zreport

    Hi All,
           Plz explain how to do coding for using Layout option  on selection screen of
    report. Also i should be able to save and create new layout on selection screen.
           Thnaks in advance.
    Aniket Dayama

    hi,
    creation of sub-screens.
    selection-screen begin of tabbed block <name of the tab> for < height of the tab in no's> lines.
    eg;
    selection-screen tab(20) l1 <data element> user-comand <name of the funcion code>
    selection-screen end of block <name of the tab strip>.
    eg;
    selection-screen begin of tabbed block mytab for 10 lines.
    selection-screen tab(20) l1 user-command tab1.
    selection-screen tab (20) l2 user-command tab2..
    selection-screen end of block mytab.
    Under initialization.
    data element = text-01.
    data element = text=02.
    How to initialize the tab with default screen.
    <name of the tab> - prog = sy-repid.
    <name of the tab>- dynnr = '<subscreen no>'.
    <nane of the tab>-activetab = '<user-command for the strip>
    if this has solved ur problem then dont forget to reward with points.
    with regards,
    madhuri.

  • Allowing a User to choose the ALV layout format on selection-screen

    Hi all,
    I would like to know how i can add a parameter to my selection-screen which would allow the User to choose a saved ALV layout format before pressing F8 rather than after. As used in CO15 or MB51.
    Thanks  femi.

    yes , You can check the program BCALV_TEST_FULLSCREEN_LAYOUT  to check how F4 help is to be used .
    to check existene of variant is pretty simple.
    Pass the variant name in the ALV display FM .

  • ALV + layout varient on selection screen

    hiii
    with ALV list i want to know with how to allow to put the layout on the selection screen and when user press F4 he will be able to use the list of layout he has save on the ALV output
    Note for the layout button to appear i had to activate shown below:
    i_save                   = c_x
    please give me sample code where user can choose layout on selection screen and this layout will be used to display on ALV

    Hi,
    Please refer the code below for layout variants :
    DATA:   gt_rsparams  TYPE TABLE OF rsparams.
    * Data for ALV variant
    DATA  gv_repname          LIKE sy-repid.
    DATA  gv_x_variant        LIKE disvariant.
    DATA  gv_exit(1)          TYPE c.
    DATA  gv_save(1)          TYPE c.
    DATA  gv_variant          LIKE disvariant.
    PARAMETERS: sp_vari LIKE disvariant-variant.        "Dispaly Variant
    INITIALIZATION.
      gv_repname = sy-repid.
      REFRESH : gt_glacct,
                gr_rcomp,
                gt_output,
                gt_fieldcat,
                gt_sort.
    * Initialize ALV Layout variant
      PERFORM f_initialize_variant.
    FORM f_initialize_variant .
      CLEAR gv_variant.
      gv_save           = 'X'.
      gv_variant-report = gv_repname.
      gv_x_variant      = gv_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = gv_save
        CHANGING
          cs_variant = gv_x_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 0.
        sp_vari = gv_x_variant-variant.
      ENDIF.
    ENDFORM.                    " f_initialize_variant
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR sp_vari.
      PERFORM f_f4_for_variant.
    FORM f_f4_for_variant .
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = gv_variant
          i_save     = gv_save
        IMPORTING
          e_exit     = gv_exit
          es_variant = gv_x_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF gv_exit = space.
          sp_vari = gv_x_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f_f4_for_variant
    AT SELECTION-SCREEN.
    *  Validating selection screen fields
      PERFORM f_at_selection_screen.
    FORM f_at_selection_screen .
    * ALV Layout variant
      IF NOT sp_vari IS INITIAL.
        MOVE gv_variant TO gv_x_variant.
        MOVE sp_vari    TO gv_x_variant-variant.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            i_save     = gv_save
          CHANGING
            cs_variant = gv_x_variant.
        gv_variant = gv_x_variant.
      ELSE.
        PERFORM f_initialize_variant.
      ENDIF.
    FORM f_initialize_variant .
      CLEAR gv_variant.
      gv_save           = 'X'.
      gv_variant-report = gv_repname.
      gv_x_variant      = gv_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = gv_save
        CHANGING
          cs_variant = gv_x_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 0.
        sp_vari = gv_x_variant-variant.
      ENDIF.
    ENDFORM.                    " f_initialize_variant
    Thanks,
    Sriram POnna.

  • Layout variants in Selection screen

    Hi All,
        I have a requirement where i need to create a functinal key on selection screen'Disp Variant' and i need to provide F4 help when user click on button and when layout is selected the report should show the layout according to selected layout variant.
    I have written following code but it is not workin for me.Please help.
    initialisation.
        wa_functxt-icon_id   =  icon_variants.
        wa_functxt-quickinfo = 'CHOOSE'.
        wa_functxt-icon_text = 'DISP VAR'.
        sscrfields-functxt_01 = wa_functxt.
    wa_functxt of type smp_dyntxt and sscrfields have been declared at top.
    CLEAR: wa_variant2.
      wa_variant2-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = ' '
        CHANGING
          cs_variant = wa_variant2
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc EQ 0.
        PERFORM f_select_alv_variant.
      ENDIF.
    even this is in initialisation.
    form F_SELECT_ALV_VARIANT .
      MOVE sy-repid TO wa_variant1-report.
      CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'
        EXPORTING
          i_dialog            = space
          i_user_specific     = 'X'
          i_default           = space
          it_default_fieldcat = i_fieldcat[]
          i_layout            = wa_layout
        IMPORTING
          et_fieldcat         = i_fieldcat[]
        CHANGING
          cs_variant          = wa_variant2
        EXCEPTIONS
          wrong_input         = 1
          fc_not_complete     = 2
          not_found           = 3
          program_error       = 4
          OTHERS              = 5.
      IF sy-subrc EQ 0.
        "Do nothing.
      ENDIF.
    endform.  
    AT SELECTION-SCREEN.
    CASE sscrfields-ucomm.
    *When Display Variant button is clicked
        WHEN c_fc01.
          PERFORM f_f4_for_variant.
        WHEN OTHERS.
      ENDCASE.
    form F_F4_FOR_VARIANT .
      CLEAR: wa_variant1,
             wa_variant2.
      wa_variant1-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = wa_variant1
          i_save     = 'U'
        IMPORTING
          e_exit     = v_variant_exit
          es_variant = wa_variant2.
      PERFORM f_select_alv_variant.
      IF v_variant_exit EQ 'X'..
        PERFORM f_get_default_variant.
      ENDIF.
    endform.
    Thanks in Advance,
    Anjana

    Let's discuss based on something. On that program, I don't have any issue, check it.
    INCLUDE <icon>.
    TABLES sscrfields.
    DATA wa_variant1 TYPE disvariant.
    DATA wa_variant2 TYPE disvariant.
    SELECTION-SCREEN FUNCTION KEY 1.
    PARAMETERS dummy.
    INITIALIZATION.
      DATA wa_functxt TYPE smp_dyntxt.
      wa_functxt-icon_id = icon_variants.
      wa_functxt-quickinfo = 'CHOOSE'.
      wa_functxt-icon_text = 'DISP VAR'.
      sscrfields-functxt_01 = wa_functxt.
      PERFORM f_get_default_variant.
    FORM f_get_default_variant.
      CLEAR: wa_variant2.
      wa_variant2-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = ' '
        CHANGING
          cs_variant = wa_variant2
        EXCEPTIONS
          not_found  = 2.
    ENDFORM.                    "f_get_default_variant
    AT SELECTION-SCREEN.
      PERFORM at_selection_screen.
    *&      Form  at_selection_screen
    *       text
    FORM at_selection_screen.
      CASE sscrfields-ucomm.
    *When Display Variant button is clicked
        WHEN 'FC01'.
          PERFORM f_f4_for_variant.
        WHEN 'ONLI'.
          DATA gt_output TYPE TABLE OF t000 WITH HEADER LINE.
          SELECT * FROM t000 INTO TABLE gt_output.
          DATA lo_table TYPE REF TO cl_salv_table.
          TRY.
              CALL METHOD cl_salv_table=>factory
                IMPORTING
                  r_salv_table = lo_table
                CHANGING
                  t_table      = gt_output[].
            CATCH cx_salv_msg.
          ENDTRY.
          DATA lo_layout TYPE REF TO cl_salv_layout.
          lo_layout = lo_table->get_layout( ).
          lo_layout->set_save_restriction( cl_salv_layout=>restrict_none ).
          DATA ls_layout_key TYPE salv_s_layout_key.
          ls_layout_key-report = sy-repid.
          lo_layout->set_key( ls_layout_key ).
          DATA l_variant TYPE slis_vari.
          l_variant = wa_variant2-variant.
          lo_layout->set_initial_layout( l_variant ).
          DATA lo_functions_list TYPE REF TO cl_salv_functions_list.
          lo_functions_list = lo_table->get_functions( ).
          lo_functions_list->set_all( ).
          lo_table->display( ).
      ENDCASE.
    ENDFORM.                    "at_selection_screen
    FORM f_f4_for_variant .
      CLEAR: wa_variant1, wa_variant2.
      wa_variant1-report = sy-repid.
      DATA v_variant_exit TYPE flag.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          is_variant = wa_variant1
          i_save     = 'U'
        IMPORTING
          e_exit     = v_variant_exit
          es_variant = wa_variant2.
      IF v_variant_exit EQ 'X'..
        PERFORM f_get_default_variant.
      ENDIF.
    ENDFORM.                    "F_F4_FOR_VARIANT

Maybe you are looking for