<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Layout selction before ALV report gets executed. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332651#M798649</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this code also:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
data : repname  like sy-repid.
data : g_save.
data : g_exit.
data : g_variant like disvariant.
data : gx_variant like disvariant.

parameters: p_vari like disvariant-variant. " ALV Variant

initialization.
  repname = sy-repid.
  perform initialize_variant.

at selection-screen.
  repname = sy-repid.
  perform pai_of_selection_screen.

at selection-screen on value-request for p_vari.
  perform f4_for_variant.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  initialize_variant
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form initialize_variant.
  g_save = 'A'.
  clear g_variant.
  g_variant-report = repname.
  gx_variant = g_variant.
  call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
       exporting
            i_save     = g_save
       changing
            cs_variant = gx_variant
       exceptions
            not_found  = 2.
  if sy-subrc = 0.
    p_vari = gx_variant-variant.
  endif.
endform.                    " initialize_variant
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f4_for_variant
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form f4_for_variant.
  call function 'REUSE_ALV_VARIANT_F4'
       exporting
            is_variant = g_variant
            i_save     = g_save
       importing
            e_exit     = g_exit
            es_variant = gx_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 g_exit = space.
      p_vari = gx_variant-variant.
    endif.
  endif.

endform.                    " f4_for_variant
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  pai_of_selection_screen
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form pai_of_selection_screen.
  if not p_vari is initial.
    move g_variant to gx_variant.
    move p_vari to gx_variant-variant.
    call function 'REUSE_ALV_VARIANT_EXISTENCE'
         exporting
              i_save     = g_save
         changing
              cs_variant = gx_variant.
    g_variant = gx_variant.
  else.
    perform variant_init.
  endif.

endform.                    " pai_of_selection_screen
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  variant_init
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form variant_init.
  clear g_variant.
  g_variant-report = repname.
endform.                    " variant_init
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;n.jain&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 29, 2008 10:48 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 29 Jan 2008 09:10:15 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-29T09:10:15Z</dc:date>
    <item>
      <title>Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332646#M798644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;     I have an ALV grid display report. I need to choose the layout of the grid display before i execute the report. That is on the selection screen. How can i possibly do that ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 05:49:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332646#M798644</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T05:49:54Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332647#M798645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Srikanth,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is an option in FM reuse_alv_grid_display where in you can pass the lay out name. I guess you are using the same FM, if not you will be having this option in othe fm even. Lemme know which function module are you using?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Kiran I&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 06:02:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332647#M798645</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T06:02:29Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332648#M798646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Define one field on selection screen&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*PARAMETERS: alv_def LIKE disvariant-variant.*
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To populate F4 help&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_def.
  PERFORM layout.

FORM layout .

  g_save = 'A'.

  CLEAR g_variant.

  g_variant-report = sy-repid.

  gx_variant = g_variant.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = g_save
    CHANGING
      cs_variant = gx_variant
    EXCEPTIONS
      not_found  = 2.

  IF sy-subrc = 0.
    alv_def = gx_variant-variant.
  ENDIF.


*   Get values from the selection screen to determine layout set
  wal_dynpfields-fieldname = 'ALV_DEF'.
  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 &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  READ TABLE tl_dynpfields INTO wal_dynpfields INDEX 1.
  IF sy-subrc EQ 0.
    g_variant-variant = wal_dynpfields-fieldvalue.
  ENDIF.

  g_variant-report   = sy-repid.
  g_variant-username = sy-uname.


**-- Display all existing variants
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant = g_variant
      i_save     = g_save
    IMPORTING
      e_exit     = g_exit
      es_variant = gx_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 g_exit = space.
      alv_def = gx_variant-variant.
      g_variant = gx_variant.

    ELSE.
      MESSAGE 'No layouts found' TYPE 'I'.

    ENDIF.
  ENDIF.


ENDFORM.                    " layout
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pass Exporting parameter &lt;STRONG&gt;is_variant   = gx_variant&lt;/STRONG&gt; in CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pankaj&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 29, 2008 10:47 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 06:02:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332648#M798646</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T06:02:47Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332649#M798647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi kiran, &lt;/P&gt;&lt;P&gt;         i am using the function module REUSE_ALV_GRID_DISPLAY. let me know how i can use this and have choose layout option on the selection screen.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 06:50:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332649#M798647</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T06:50:53Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332650#M798648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the sample code in my last reply. It has all the details.&lt;/P&gt;&lt;P&gt;Let me know if you have any problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pankaj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 09:02:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332650#M798648</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T09:02:07Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332651#M798649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this code also:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
data : repname  like sy-repid.
data : g_save.
data : g_exit.
data : g_variant like disvariant.
data : gx_variant like disvariant.

parameters: p_vari like disvariant-variant. " ALV Variant

initialization.
  repname = sy-repid.
  perform initialize_variant.

at selection-screen.
  repname = sy-repid.
  perform pai_of_selection_screen.

at selection-screen on value-request for p_vari.
  perform f4_for_variant.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  initialize_variant
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form initialize_variant.
  g_save = 'A'.
  clear g_variant.
  g_variant-report = repname.
  gx_variant = g_variant.
  call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
       exporting
            i_save     = g_save
       changing
            cs_variant = gx_variant
       exceptions
            not_found  = 2.
  if sy-subrc = 0.
    p_vari = gx_variant-variant.
  endif.
endform.                    " initialize_variant
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f4_for_variant
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form f4_for_variant.
  call function 'REUSE_ALV_VARIANT_F4'
       exporting
            is_variant = g_variant
            i_save     = g_save
       importing
            e_exit     = g_exit
            es_variant = gx_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 g_exit = space.
      p_vari = gx_variant-variant.
    endif.
  endif.

endform.                    " f4_for_variant
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  pai_of_selection_screen
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form pai_of_selection_screen.
  if not p_vari is initial.
    move g_variant to gx_variant.
    move p_vari to gx_variant-variant.
    call function 'REUSE_ALV_VARIANT_EXISTENCE'
         exporting
              i_save     = g_save
         changing
              cs_variant = gx_variant.
    g_variant = gx_variant.
  else.
    perform variant_init.
  endif.

endform.                    " pai_of_selection_screen
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  variant_init
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
form variant_init.
  clear g_variant.
  g_variant-report = repname.
endform.                    " variant_init
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;n.jain&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 29, 2008 10:48 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 09:10:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332651#M798649</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T09:10:15Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332652#M798650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well pankaj, I have checked the code you have put over here. This code, at my place , when f4 is pressed is going into an infinite loop at a FM conversion_exit_alpha_output. Don't know why ???&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 09:13:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332652#M798650</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T09:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332653#M798651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;its not a function call .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
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
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 29, 2008 10:49 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 09:21:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332653#M798651</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T09:21:05Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332654#M798652</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi shrikant,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the code i made, it might help you&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*CONSTANTS*
CONSTANTS: C_SAVE VALUE 'A'  *for user specific/default*

*WORKAREA DECLARATION*
* Structure to display variants
*DATA : WA_VARIANT LIKE DISVARIANT,*
          * WA_VARIANT1 LIKE DISVARIANT.*
*----------------------------------------------------------------------*
*                 VARIABLE   DECLARATION                               *
*----------------------------------------------------------------------*

DATA : V_PROGNAME TYPE SYREPID.

************************************************************************
*                SELECTION SCREEN                                      *
************************************************************************

* SCREEN FOR ENTERING INFORMATION

SELECTION-SCREEN BEGIN OF BLOCK FIELDS WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: R_MATNR FOR MARD-MATNR.
SELECT-OPTIONS: R_WERKS FOR MARD-WERKS.
SELECT-OPTIONS: R_LGORT FOR MARD-LGORT.

SELECTION-SCREEN END OF BLOCK FIELDS.

SELECTION-SCREEN BEGIN OF BLOCK OPTIONS WITH FRAME TITLE TEXT-003.

*RADIO BUTTON

PARAMETERS: P_R01  RADIOBUTTON GROUP RAD1 DEFAULT 'X',  "GRID FORMAT
            P_R02  RADIOBUTTON GROUP RAD1 .             "LIST FORMAT

SELECTION-SCREEN END OF BLOCK OPTIONS.

*VARIANT
SELECTION-SCREEN BEGIN OF BLOCK VARI WITH FRAME TITLE TEXT-051.

*PARAMETERS: P_VAR TYPE SLIS_VARI.*

SELECTION-SCREEN END OF BLOCK VARI.

*----------------------------------------------------------------------*
*                 INITIALIZATION EVENT                                 *
*----------------------------------------------------------------------*
INITIALIZATION.

*&amp;amp;--assigns main program name to v_progname which becomes the calling
* program
  V_PROGNAME = SY-REPID.

* Display default variant using FM *REUSE_ALV_VARIANT_DEFAULT_GET*
  PERFORM ZF_GET_DEFAULT_VARIANT.
--&amp;gt;this is form for setting the default variant and saving it,
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ZF_GET_DEFAULT_VARIANT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM ZF_GET_DEFAULT_VARIANT .

  *WA_VARIANT1-REPORT = SY-REPID.*
* Search default variant for the report
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      I_SAVE        = C_SAVE          "all user/default
    CHANGING
      CS_VARIANT    = WA_VARIANT1
    EXCEPTIONS
      WRONG_INPUT   = 1
      NOT_FOUND     = 2
      PROGRAM_ERROR = 3
      OTHERS        = 4.
  IF SY-SUBRC = 0.       "if succesful set as default.
    P_VAR = WA_VARIANT1-VARIANT.
  ENDIF.



ENDFORM.                    " ZF_GET_DEFAULT_VARIANT

*----------------------------------------------------------------------*
*             AT SELECTION SCREEN ON VLAUE REQUEST                     *
*----------------------------------------------------------------------*
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.*
* CALL FOR FM to provide SEARCH HELP for VARIANTS
*PERFORM ZF_VARIANT_F4.*  "USING FM REUSE_ALV_VARIANT_F4

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ZF_VARIANT_F4
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM ZF_VARIANT_F4 .
  *WA_VARIANT-REPORT = SY-REPID.*
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      IS_VARIANT    = WA_VARIANT
      I_SAVE        = C_SAVE          "all user/default
    IMPORTING
      ES_VARIANT    = WA_VARIANT1
    EXCEPTIONS
      NOT_FOUND     = 1
      PROGRAM_ERROR = 2
      OTHERS        = 3.
  IF SY-SUBRC = 0.     "if sccesfully found, load the variant

    P_VAR = WA_VARIANT1-VARIANT.

  ELSE.

    P_VAR = TEXT-052.    "\DEFAULT

  ENDIF.
ENDFORM.                    " ZF_VARIANT_F4

*----------------------------------------------------------------------*
*                          AT SELECTION SCREEN                         *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.

*check the material no.
  PERFORM ZF_VALIDATE_FIELD.

*check the variant provided
PERFORM ZF_VARIANT_CHECK.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ZF_VARIANT_CHECK
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM ZF_VARIANT_CHECK .
* if variant field is filled with some value
  IF NOT P_VAR IS INITIAL.

   WA_VARIANT-REPORT = SY-REPID.
    WA_VARIANT-VARIANT = P_VAR.

    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
      EXPORTING
        I_SAVE        = C_SAVE        "all user/default
      CHANGING
        CS_VARIANT    = WA_VARIANT
      EXCEPTIONS
        WRONG_INPUT   = 1
        NOT_FOUND     = 2
        PROGRAM_ERROR = 3
        OTHERS        = 4.
    IF SY-SUBRC = 0.
      CLEAR WA_VARIANT1.
      MOVE P_VAR TO WA_VARIANT1-VARIANT.
      MOVE SY-REPID TO WA_VARIANT1-REPORT.
    ELSE.
      MESSAGE E007.

    ENDIF.

  ELSE.
    CLEAR WA_VARIANT.
  ENDIF.


ENDFORM.                    " ZF_VARIANT_CHECK

*NOW AFTER THIS PASS I_SAVE AND IS_VARIANT VALUE IN ALV GRID/LIST FM*

like this

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  zf_display_alv_grid
*&amp;amp;---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------
*
FORM ZF_DISPLAY_ALV_GRID .
*&amp;amp;--calling FM to display GRID LAYOUT
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = V_PROGNAME
      IS_LAYOUT          = WA_LAYOUT
      IT_FIELDCAT        = I_FIELDCAT
      IT_EVENTS          = I_EVENTCAT
      IT_SORT            = I_SORTINFO
      I_DEFAULT          = TEXT-029
      *I_SAVE             = C_SAVE*          "all user/default
     * IS_VARIANT         = WA_VARIANT1*
    TABLES
      T_OUTTAB           = I_FINAL      "output table
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " zf_display_alv_grid
*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  zf_display_alv_list
*&amp;amp;---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------
*
FORM ZF_DISPLAY_ALV_LIST .
*&amp;amp;--calling FM to display LIST LAYOUT
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = V_PROGNAME
      IS_LAYOUT          = WA_LAYOUT
      IT_FIELDCAT        = I_FIELDCAT
      I_DEFAULT          = TEXT-029
      IT_EVENTS          = I_EVENTCAT
      IT_SORT            = I_SORTINFO
*      I_SAVE             = C_SAVE        "all user/default*
 *     IS_VARIANT         = WA_VARIANT1*
    TABLES
      T_OUTTAB           = I_FINAL
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " zf_display_alv_list
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do reply , if any questions, happy coding&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;lt;REMOVED BY MODERATOR&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Rohan malik&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Jan 29, 2008 10:50 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 14:12:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332654#M798652</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T14:12:26Z</dc:date>
    </item>
    <item>
      <title>Re: Layout selction before ALV report gets executed.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332655#M798653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srikanth, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Declare a structure/work area &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA: gs_variant       LIKE disvariant.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use FM HR_F4_FOR_ALV_VARIANT to get the ALV variants created for the ALV Report. &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;In event AT Selection Screen on Value Request Fld_variant.&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;Use FM HR_F4_FOR_ALV_VARIANT passing the report name.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;This FM will give you a pop up with Variants. The selected Variant will come as an export parameter VARIANT of the function module. &lt;/P&gt;&lt;P&gt;Pass this Variant to gs_variant-VARIANT.&lt;/P&gt;&lt;P&gt;  gs_repid              = sy-repid.&lt;/P&gt;&lt;P&gt;  gs_variant-report     = gs_repid.&lt;/P&gt;&lt;P&gt;  gs_variant-username   = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pass this Structure/Work area to FM call for ALV.&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_background_id    = 'SIWB_WALLPAPER'
      i_callback_program = gs_repid
      is_layout          = gs_layout
      it_fieldcat        = gt_fieldcat_alv
      i_save             = 'A'
      is_variant         = gs_variant
      it_events          = gt_events
    TABLES
      t_outtab           = gt_itab.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;Lokesh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Lokesh Aggarwal on Jan 29, 2008 3:36 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2008 15:35:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/layout-selction-before-alv-report-gets-executed/m-p/3332655#M798653</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-29T15:35:55Z</dc:date>
    </item>
  </channel>
</rss>

