Ads

SAP ABAP ALV Reports Selecting the Optional variants

SAP ABAP ALV Reports Selecting the Optional variants

In the previous Post ,we have discussed on Data Declarations in ALV Reports ,in this post ,i will discuss on selecting variants which are optional depends on your requirement.

The variants in the list display can be both user-specific and general. The user can pro-grammatically set the initial (default) variant for list display. 

The default variant can be found using the function module 'REUSE_ALV_VARIANT_DEFAULT_GET'.

Example Program on Selecting the variants in ALV Report

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save               = variant save condition (A=all, U = user-specific)
CHANGING
cs_variant          = internal table containing the program name (and the default variant---optional)
EXCEPTIONS
not_found = 2.

The user can also choose from the list of existing variants using the function module  'REUSE_ALV_VARIANT_F4'. Example:
 Initialization.
v_repid = sy-repid.
* Display default variant
 PERFORM SUB_VARIANT_INIT.
 AT SELECTION-SCREEN ON P_VAR.
* Once the user has entered variant, check about its existence
 PERFORM SUB_CHECK_PVAR.
 AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.
* Display a list of various variants of the report when the User presses F4 key in the variant field
 PERFORM SUB_VARIANT_F4.
  
 *&---------------------------------------------------------------------*
*&      Form SUB_VARIANT_INIT
*&---------------------------------------------------------------------*
* Display default variant
*&---------------------------------------------------------------------*
Form SUB_VARIANT_INIT.
I_VARIANT1-REPORT = SY-REPID.
 * Search default variant for the report
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            i_save     = 'A'
       CHANGING
            cs_variant = i_variant1
       EXCEPTIONS
            not_found = 2.
* If default variant is found, use it as default.
* Else, use the variant LAYOUT1.
  IF sy-subrc = 0.
    p_var = i_variant1-variant.
  ELSE.
    p_var = 'LAYOUT1'.
  ENDIF.
endform.                    "SUB_VARIANT_INIT
 *&---------------------------------------------------------------------------------*
*&      Form SUB_CHECK_PVAR
*&---------------------------------------------------------------------------------*
* Once the user has entered variant, check about its existence
*&---------------------------------------------------------------------------------*
 FORM SUB_CHECK_PVAR.
* If the name of the variable is not blank, check about its existence
if not p_var is initial.
  clear i_variant.
  i_variant-report = sy-repid.
  i_variant-variant = p_var.
  CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              I_SAVE     = 'A'
         CHANGING
              CS_VARIANT = I_VARIANT.
* If no such variant found, flash error message
     If sy-subrc ne 0 .
      Message e398(00) with 'No such variant exists'.
     Else.
* If variant exists, use the variant name to populate structure
* I_VARIANT1 which will be used for export parameter: IS_VARIANT
* in the function module : REUSE_ALV_GRID_DISPLAY
       Clear i_variant1.
       Move p_var to i_variant1-variant.
       Move sy-repid to i_variant1-report.
     endif.
 Else.
   Clear i_variant.
 endif.
ENDFORM.                    "SUB_CHECK_PVAR
 *&---------------------------------------------------------------------------------*
*&      Form SUB_VARIANT_F4
*&---------------------------------------------------------------------------------*
* Display a list of various variants of the report when the User presses F4 key in the variant field
*&---------------------------------------------------------------------------------*
Form SUB_VARIANT_F4.
i_variant-report = sy-repid.
* Utilizing the name of the report, this function module will search for a list of
* variants and will fetch the selected one into the parameter field for variants
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            IS_VARIANT         = I_VARIANT
            I_SAVE                                     = 'A'
            I_DISPLAY_VIA_GRID   = 'X'
       IMPORTING
            ES_VARIANT                = I_VARIANT1
       EXCEPTIONS
            NOT_FOUND                 = 1
            PROGRAM_ERROR      = 2
            OTHERS                                   = 3.
  IF SY-SUBRC = 0.
    P_VAR = I_VARIANT1-VARIANT.
 ENDIF.
endform.                    "SUB_VARIANT_F4.

From the above program,we can learn about variants and their importance ALV Program.



Comments

Post a Comment

Popular posts from this blog

BADI Interview Questions in SAP ABAP

Sample SAP ABAP Programming Examples for Practice

Module Pool Programming Interview Questions and Answers in SAP ABAP

Step by Step tutorial on BDC Session Method Program in SAP ABAP

SAP ABAP Interview Questions and Answers for 10 Years Experienced