‎2006 Sep 15 9:59 AM
hai all
iwant to know about few function modules in alv
1) reuse_alv_default_varients_get.
2)reuse alv_varients_f4
what is the use of these function modules
how to use these function modules, what r the structures used to use these function module. where to pass this in
in list and grid display function modules.
plz help me.
thanks & regards
sindu
‎2006 Sep 15 10:04 AM
lets assume my selection screen field for variant is
PARAMETERS : P_VARI TYPE DISVARIANT-VARIANT.
"Layout
this is used to have one of the already saved variants to be displayed.
about<b> 'REUSE_ALV_VARIANT_DEFAULT_GET'</b>
this is used to get any default layout variant exists or not. we normally call this FM in INITIALIZATION Event.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
<b>INITIALIZATION.</b>
V_REPID = SY-REPID.
V_VARIANT_SAVE = 'A'.
CLEAR V_VARIANT.
V_VARIANT-REPORT = V_REPID.
*-- Default-Variant
V_DEF_VARIANT = V_VARIANT.
CALL FUNCTION <b>'REUSE_ALV_VARIANT_DEFAULT_GET'</b>
EXPORTING
I_SAVE = V_VARIANT_SAVE
CHANGING
CS_VARIANT = V_DEF_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = V_DEF_VARIANT-VARIANT.
ENDIF.
another FM <b>'REUSE_ALV_VARIANT_F4'</b>
this is to give F4 help to the user to choose one of the layouts,which already saved.
*-- F4 help for Variant
<b>AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.</b>
*----------------------------------------------------------------------*
* FORM F4_FOR_VARIANT *
*----------------------------------------------------------------------*
* Provide F4 help for the Variant *
*----------------------------------------------------------------------*
FORM F4_FOR_VARIANT .
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = V_VARIANT
I_SAVE = V_VARIANT_SAVE
IMPORTING
E_EXIT = V_VARIANT_EXIT
ES_VARIANT = V_DEF_VARIANT
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF V_VARIANT_EXIT = SPACE.
P_VARI = V_DEF_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
and while calling the ALV function module,
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
IT_FIELDCAT = IT_FIELDCAT
I_DEFAULT = 'X'
I_SAVE = 'A'
<b> IS_VARIANT = V_VARIANT</b>
TABLES
T_OUTTAB = P_ITAB[]
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.
Message was edited by: Srikanth Kidambi
‎2006 Sep 15 10:06 AM
Hi
- reuse_alv_default_varients_get: it returns the default layout variant, so you can inizialize the parameters you have to transfer to the ALV:
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
INITIALIZATION.
DATA: G_SAVE(1) TYPE C VALUE 'A',
GX_VARIANT LIKE DISVARIANT.
GX_VARIANT-REPORT = SY-REPID.
GX_VARIANT-USERNAME = SY-UNAME.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
PROGRAM_ERROR = 3
OTHERS = 4.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ELSE.
CLEAR GX_VARIANT.
ENDIF.
2) reuse alv_varients_f4 is to manage the search help for layout variant:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
G_VARIANT-REPORT = SY-REPID.
G_VARIANT-USERNAME = SY-UNAME.
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.
CLEAR: G_VARIANT, GX_VARIANT.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
Max
‎2006 Sep 15 10:08 AM
Hi sindu,
answer to 2)
try this extract:
*
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 01(30) T_VARIAN.
PARAMETERS: P_VARIAN LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN: END OF LINE.
*
DATA: VARIANT LIKE DISVARIANT.
*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARIAN.
*
DATA: I_VARIANT LIKE DISVARIANT.
DATA: E_VARIANT LIKE DISVARIANT.
*
I_VARIANT-REPORT = SY-REPID.
*
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = I_VARIANT
I_SAVE = 'A'
IMPORTING
ES_VARIANT = E_VARIANT
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
*
IF SY-SUBRC <> 0.
MESSAGE I010 WITH 'Es sind keine Varianten angelegt'.
CLEAR: P_VARIAN.
ELSE.
P_VARIAN = E_VARIANT-VARIANT.
ENDIF.
*
INITIALIZATION.
*
T_VARIAN = 'Anzeigevariante'.
*
...
START-OF-SELECTION.
*
...
VARIANT-VARIANT = P_VARIAN.
...
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
...
IS_VARIANT = VARIANT
...
*
Regards, Dieter
‎2006 Sep 15 10:12 AM
hi Priya,
Check this out
http://www.sap-img.com/abap/use-simple-alv-functions-to-make-reporting-easy.htm
Regards,
Santosh
‎2006 Sep 15 10:24 AM
HI,
check this.
REPORT Z_TEST_alv_variant .
TYPE-POOLS : SLIS.
PARAMETERS: ONE RADIOBUTTON GROUP G1 DEFAULT 'X',
TWO RADIOBUTTON GROUP G1.
DATA: BEGIN OF I_TAB OCCURS 0,
FIELD1 TYPE I,
FIELD2 TYPE I,
END OF I_TAB.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: L_VARIANT TYPE DISVARIANT,
LX_VARIANT LIKE DISVARIANT,
L_SAVE TYPE C,
L_EXIT(1) TYPE C.
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-VAR.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 0.
INITIALIZATION.
L_SAVE = 'A'.
PERFORM VARIANT_INIT.
Get default variant
LX_VARIANT = L_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = L_SAVE
CHANGING
CS_VARIANT = LX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = LX_VARIANT-VARIANT.
ENDIF.
Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
I_TAB-FIELD1 = 19.
I_TAB-FIELD2 = 20.
APPEND I_TAB.
I_TAB-FIELD1 = 19.
I_TAB-FIELD2 = 20.
APPEND I_TAB.
I_TAB-FIELD1 = 19.
I_TAB-FIELD2 = 20.
APPEND I_TAB.
I_TAB-FIELD1 = 19.
I_TAB-FIELD2 = 20.
APPEND I_TAB.
I_TAB-FIELD1 = 19.
I_TAB-FIELD2 = 20.
APPEND I_TAB.
PERFORM INITIALIZE_FIELDCAT USING GT_FIELDCAT[].
PERFORM CALL_ALV TABLES I_TAB[]
USING GT_FIELDCAT.
&----
*& Form initialize_fieldcat
&----
text
----
-->P_GT_FIELDCAT[] text
----
FORM INITIALIZE_FIELDCAT USING L_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
LS_FIELDCAT-FIELDNAME = 'FIELD1'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-COL_POS = 1.
LS_FIELDCAT-SELTEXT_S = 'Work center'.
LS_FIELDCAT-SELTEXT_L = 'Work center'.
APPEND LS_FIELDCAT TO L_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'FIELD2'.
LS_FIELDCAT-KEY = ' '.
LS_FIELDCAT-COL_POS = 2.
LS_FIELDCAT-SELTEXT_S = 'Work center2'.
LS_FIELDCAT-SELTEXT_L = 'Work center2'.
APPEND LS_FIELDCAT TO L_FIELDCAT.
CLEAR LS_FIELDCAT.
ENDFORM. " initialize_fieldcat
&----
*& Form call_alv
&----
text
----
-->P_GT_FIELDCAT text
-->P_I_TAB text
----
FORM CALL_ALV TABLES P_TAB
USING P_GT_FIELDCAT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = P_GT_FIELDCAT
I_DEFAULT = 'X'
IS_VARIANT = L_VARIANT
I_SAVE = L_SAVE
TABLES
T_OUTTAB = P_TAB[]
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. " call_alv
&----
*& Form VARIANT_INIT
&----
text
----
FORM VARIANT_INIT.
*
CLEAR L_VARIANT.
L_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT_INIT
&----
*& Form variant_SELECTION_SCREEN
&----
text
----
FORM VARIANT_SELECTION_SCREEN .
IF NOT P_VARI IS INITIAL.
MOVE L_VARIANT TO LX_VARIANT.
MOVE P_VARI TO LX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = L_SAVE
CHANGING
CS_VARIANT = LX_VARIANT.
L_VARIANT = LX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. " variant_SELECTION_SCREEN
&----
*& Form F4_FOR_VARIANT
&----
text
----
FORM F4_FOR_VARIANT.
*
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = L_VARIANT
I_SAVE = L_SAVE
IMPORTING
E_EXIT = L_EXIT
ES_VARIANT = LX_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 = SPACE.
P_VARI = LX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. "F4_FOR_VARIANT
Regards,
Laxmi.