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.
This post gives required information to visitor.
ReplyDeleteSAP training institute in Noida
SAP training institute in Delhi
ReplyDeleteVery interesting post shared by you
sap training institute in Noida
sap training institute in Delhi
Such a wonderful post. Thnaks for posting
ReplyDeleteSAP training institute in Noida
SAP training institute in Delhi