You are on page 1of 4

REPORT ZALV.

TYPE-POOLS: SLIS.
DATA: G_REPID LIKE SY-REPID,
GS_PRINT
TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS
TYPE SLIS_T_EVENT,
GT_SORT
TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT
TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT
TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.
DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.
* Print Parameters
PARAMETERS:
P_PRINT
P_NOSINF
P_NOCOVE
P_NONEWP
P_NOLINF
P_RESERV
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD

AS CHECKBOX
AS CHECKBOX
AS CHECKBOX
AS CHECKBOX
AS CHECKBOX
TYPE I.

USING GS_PRINT.

START-OF-SELECTION.
* TEST DATA
MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.
MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.
DO 50 TIMES.
APPEND ITAB1.
ENDDO.
END-OF-SELECTION.
PERFORM BUILD.

DEFAULT
DEFAULT
DEFAULT
DEFAULT
DEFAULT

' ',
'X',
' ',
' ',
'X',

"PRINT IMMEDIATE
"NO SELECTION INFO
"NO COVER PAGE
"NO NEW PAGE
"NO PRINT LIST INFO
"NO OF FOOTER LINE

"Print PARAMETERS

PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.


PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.
FORM BUILD.
* DATA FIELD CATALOG
* Explain Field Description to ALV
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME
FIELDCAT_LN-TABNAME
*FIELDCAT_LN-NO_OUT
FIELDCAT_LN-KEY
FIELDCAT_LN-NO_OUT
FIELDCAT_LN-SELTEXT_L
APPEND FIELDCAT_LN TO

= 'FIELD1'.
= 'ITAB1'.
= 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
= ' '. "SUBTOTAL KEY
= ' '.
= 'HEAD1'.
GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME
FIELDCAT_LN-TABNAME
FIELDCAT_LN-NO_OUT
FIELDCAT_LN-SELTEXT_L
APPEND FIELDCAT_LN TO

= 'FIELD2'.
= 'ITAB1'.
= 'X'.
= 'HEAD2'.
GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME
= 'FIELD3'.
FIELDCAT_LN-TABNAME
= 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT
= ' '.
FIELDCAT_LN-DO_SUM
= 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.
* DATA SORTING AND SUBTOTAL
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME
GS_SORT-SPOS
GS_SORT-UP
GS_SORT-SUBTOT
APPEND GS_SORT TO

= 'FIELD1'.
= 1.
= 'X'.
= 'X'.
GT_SORT.

CLEAR GS_SORT.
GS_SORT-FIELDNAME
GS_SORT-SPOS
GS_SORT-UP
*GS_SORT-SUBTOT
APPEND GS_SORT TO

= 'FIELD2'.
= 2.
= 'X'.
= 'X'.
GT_SORT.

ENDFORM.
FORM CALL_ALV.
* ABAP List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = GT_EVENTS[]
* IT_EVENT_EXIT =
IS_PRINT = GS_PRINT
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
* HEADER FORM
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
*
*
*
*
*
*
*

define END_OF_PAGE event


READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.

ENDFORM.
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP =
GS_LINE-KEY =
GS_LINE-INFO =
APPEND GS_LINE
GS_LINE-KEY =
GS_LINE-INFO =
APPEND GS_LINE
*
*
*
*
*

'S'.
'STATUS 1'.
'INFO 1'.
TO GT_TOP_OF_PAGE.
'STATUS 2'.
'INFO 2'.
TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.
GS_LINE-TYP = 'A'.
GS_LINE-INFO = 'ACTION'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

ENDFORM.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.
* PRINT SETTINGS
FORM PRINT_BUILD USING LS_PRINT
LS_PRINT-PRINT
=
LS_PRINT-NO_PRINT_SELINFOS =
LS_PRINT-NO_COVERPAGE
=
LS_PRINT-NO_NEW_PAGE
=
LS_PRINT-NO_PRINT_LISTINFOS =
LS_PRINT-RESERVE_LINES
=
ENDFORM.
*END OF ZALV PROGRAM

TYPE SLIS_PRINT_ALV.
P_PRINT. "PRINT IMMEDIATE
P_NOSINF. "NO SELECTION INFO
P_NOCOVE. "NO COVER PAGE
P_NONEWP.
P_NOLINF. "NO PRINT LIST INFO
P_RESERV.

You might also like