‎2009 Jul 08 10:53 AM
Hi,
I am changing a stnadard report program.
Its displying output as Hierachial ALV . As per stnadard program its having 4 push buttons in the report out.
I have to remove those and display the 'Change Layout' button in the output.
I have deleted the push buttons, but i am not able to get the button of 'Change Layout'.
Please provide the reason or logic.
Thanks in Advance.
‎2009 Jul 08 11:03 AM
Hi,
U have to check the PF status thats getting passed to the REUSE_ALV_GRID_DISPLAY function module.
Pass the standard ALV PF status to the function module.
Use F2CODE LIKE SY-UCOMM VALUE '&ETA',
Add code to save layout option to prog and pass following paramaters to function module.
&----
*& Form CALL_ALV
&----
text
----
--> p1 text
<-- p2 text
----
FORM CALL_ALV .
IF G_VARIANT-VARIANT IS INITIAL.
G_VARIANT-VARIANT = P_VARI.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LAYOUT
I_GRID_TITLE = 'Material Change Log Report'
IT_FIELDCAT = FIELDCAT
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = EVENTS[]
TABLES
T_OUTTAB = T_CDPOS
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 F4_FOR_VARIANT
&----
text
----
--> p1 text
<-- 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
&----
*& Form PAI_OF_SELECTION_SCREEN
&----
text
----
--> p1 text
<-- 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 INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
&----
*& Form INITIALIZE_VARIANT
&----
text
----
--> p1 text
<-- p2 text
----
FORM INITIALIZE_VARIANT .
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT-VARIANT = P_VARI.
LAYOUT-GET_SELINFOS = 'X'.
LAYOUT-GROUP_CHANGE_EDIT = 'X'.
LAYOUT-CELL_MERGE = 'X'.
ALV_PRINT-NO_PRINT_SELINFOS = 'X'.
ALV_PRINT-NO_COVERPAGE = 'X'.
ALV_PRINT-NO_PRINT_LISTINFOS = 'X'.
ALV_DETAIL_FUNC = 'REUSE_ALV_LIST_DISPLAY'.
ENDFORM. " INITIALIZE_VARIANT
&----
*& Form BUILD_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_LAYOUT .
LAYOUT-F2CODE = F2CODE.
LAYOUT-ZEBRA = 'X'.
LAYOUT-DETAIL_POPUP = 'X'.
ENDFORM. " BUILD_LAYOUT
Regards,
Deepak.
Edited by: Deepak Deshmukh on Jul 8, 2009 12:07 PM