ALV Report 3
Example ALV Report 3
*&---------------------------------------------------------------------*
*& Report ZALV3 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZALV4.
DATA: BEGIN OF ITAB OCCURS 1,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF ITAB.
TYPE-POOLS: SLIS.
*--for field catalog
DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT LIKE LINE OF IT_FLDCAT.
*--for layout
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
*--For Sorting
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
*--For events
DATA: IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT LIKE LINE OF IT_EVENTS.
*--for text and logos
DATA: IT_COMMENT TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
*--VARIANT
DATA: WA_VAR LIKE DISVARIANT.
DATA: V_TEXT(20) TYPE C,
V_REC(3) TYPE C.
SELECT-OPTIONS: S_MATNR FOR ITAB-MATNR.
PARAMETERS: P_AUTO RADIOBUTTON GROUP G1,
P_MANU RADIOBUTTON GROUP G1.
PARAMETERS: P_CHK AS CHECKBOX DEFAULT 'X'.
PARAMETERS: P_VAR LIKE DISVARIANT-VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.
PERFORM ALV_VAR_F4.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM BUILD_FLDCAT.
PERFORM BUILD_LAYOUT.
PERFORM DO_SORT.
PERFORM POPULATE_EVENTS.
END-OF-SELECTION.
PERFORM SHOW-GRID.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT A~MATNR
MTART
MATKL
MAKTX
WERKS
LGORT
LABST
INTO TABLE ITAB
FROM MARA AS A
JOIN MAKT AS B
ON B~MATNR = A~MATNR
JOIN MARD AS C
ON C~MATNR = A~MATNR
WHERE A~MATNR IN S_MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form SHOW-GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW-GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZALV4'
I_BACKGROUND_ID = 'PLAIN_BACKGROUND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FLDCAT
IT_SORT = IT_SORT[]
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT = WA_VAR
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = 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.
ENDFORM. " SHOW-GRID
*&---------------------------------------------------------------------*
*& Form BUILD_FLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FLDCAT .
IF P_MANU = 'X'.
WA_FLDCAT-COL_POS = 1.
WA_FLDCAT-FIELDNAME = 'MATNR'.
WA_FLDCAT-OUTPUTLEN = 18.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-SELTEXT_M = 'Material No'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 2.
WA_FLDCAT-FIELDNAME = 'MTART'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Type'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 3.
WA_FLDCAT-FIELDNAME = 'MATKL'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Grp'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 4.
WA_FLDCAT-FIELDNAME = 'MAKTX'.
WA_FLDCAT-OUTPUTLEN = 40.
WA_FLDCAT-SELTEXT_M = 'Material Desc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 5.
WA_FLDCAT-FIELDNAME = 'WERKS'.
WA_FLDCAT-OUTPUTLEN = 7.
WA_FLDCAT-SELTEXT_M = 'Plant'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 6.
WA_FLDCAT-FIELDNAME = 'LGORT'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Str.Loc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 7.
WA_FLDCAT-FIELDNAME = 'LABST'.
WA_FLDCAT-OUTPUTLEN = 20.
WA_FLDCAT-SELTEXT_M = 'Qty'.
WA_FLDCAT-DDICTXT = 'M'.
WA_FLDCAT-DO_SUM = 'X'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
ELSE.
*--Auto generation of field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'ZALV3'
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME = 'ZDT2'
I_INCLNAME = 'ZALV3'
CHANGING
CT_FIELDCAT = IT_FLDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT IT_FLDCAT INTO WA_FLDCAT.
CASE WA_FLDCAT-FIELDNAME.
WHEN 'MATNR'.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-REF_TABNAME = SPACE.
* WA_FLDCAT-HOTSPOT = 'X'.
WHEN 'MATKL' OR 'WERKS'.
WA_FLDCAT-KEY = SPACE.
WA_FLDCAT-REF_TABNAME = SPACE.
WHEN 'LGORT'.
WA_FLDCAT-KEY = SPACE.
WHEN 'LABST'.
WA_FLDCAT-DO_SUM = 'X'.
ENDCASE.
MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " BUILD_FLDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-ZEBRA = 'X'.
*WA_LAYOUT-no_colhead = 'X'.
*WA_LAYOUT-no_vline = 'X'.
*WA_LAYOUT-no_Hline = 'X'.
*WA_LAYOUT-edit = 'X'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DO_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DO_SORT .
IT_SORT-FIELDNAME = 'MATNR'.
IT_SORT-UP = 'X'.
IT_SORT-SUBTOT = 'X'.
APPEND IT_SORT.
ENDFORM. " DO_SORT
*&---------------------------------------------------------------------*
*& Form POPULATE_EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM POPULATE_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = IT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.
ELSE.
READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'PAGE_HEADER'.
MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'PAGE_FOOTER'.
MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDFORM. " POPULATE_EVENTS
*&---------------------------------------------------------------------*
*& Form PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PAGE_HEADER .
IT_COMMENT-TYP = 'H'.
IT_COMMENT-INFO = 'Material Stock List'.
APPEND IT_COMMENT.
DESCRIBE TABLE ITAB LINES V_REC.
CONCATENATE 'No.of.Records:' V_REC INTO V_TEXT SEPARATED BY SPACE.
IT_COMMENT-TYP = 'S'.
IT_COMMENT-INFO = V_TEXT.
APPEND IT_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT[]
I_LOGO = 'ZIGROW'
* I_END_OF_LIST_GRID =
.
ENDFORM. " PAGE_HEADER
*&--------a------------------------------------------------------------*
*& Form PAGE_FOOTER
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM PAGE_FOOTER .
REFRESH IT_COMMENT.
IT_COMMENT-TYP = 'S'.
IT_COMMENT-INFO = SY-UNAME.
IT_COMMENT-KEY = 'Developed by'.
APPEND IT_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT[]
* I_LOGO =
I_END_OF_LIST_GRID = 'X'.
ENDFORM. "PAGE_FOOTER
*&---------------------------------------------------------------------*
*& Form ALV_VAR_F4
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ALV_VAR_F4 .
WA_VAR-REPORT = SY-REPID.
WA_VAR-USERNAME = SY-UNAME.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = WA_VAR
IMPORTING
ES_VARIANT = WA_VAR
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
P_VAR = WA_VAR-VARIANT.
ENDIF.
ENDFORM. " ALV_VAR_F4
*&---------------------------------------------------------------------*
*& Report ZALV3 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZALV4.
DATA: BEGIN OF ITAB OCCURS 1,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF ITAB.
TYPE-POOLS: SLIS.
*--for field catalog
DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT LIKE LINE OF IT_FLDCAT.
*--for layout
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
*--For Sorting
DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
*--For events
DATA: IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT LIKE LINE OF IT_EVENTS.
*--for text and logos
DATA: IT_COMMENT TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
*--VARIANT
DATA: WA_VAR LIKE DISVARIANT.
DATA: V_TEXT(20) TYPE C,
V_REC(3) TYPE C.
SELECT-OPTIONS: S_MATNR FOR ITAB-MATNR.
PARAMETERS: P_AUTO RADIOBUTTON GROUP G1,
P_MANU RADIOBUTTON GROUP G1.
PARAMETERS: P_CHK AS CHECKBOX DEFAULT 'X'.
PARAMETERS: P_VAR LIKE DISVARIANT-VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.
PERFORM ALV_VAR_F4.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM BUILD_FLDCAT.
PERFORM BUILD_LAYOUT.
PERFORM DO_SORT.
PERFORM POPULATE_EVENTS.
END-OF-SELECTION.
PERFORM SHOW-GRID.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT A~MATNR
MTART
MATKL
MAKTX
WERKS
LGORT
LABST
INTO TABLE ITAB
FROM MARA AS A
JOIN MAKT AS B
ON B~MATNR = A~MATNR
JOIN MARD AS C
ON C~MATNR = A~MATNR
WHERE A~MATNR IN S_MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form SHOW-GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW-GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZALV4'
I_BACKGROUND_ID = 'PLAIN_BACKGROUND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FLDCAT
IT_SORT = IT_SORT[]
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT = WA_VAR
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = 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.
ENDFORM. " SHOW-GRID
*&---------------------------------------------------------------------*
*& Form BUILD_FLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FLDCAT .
IF P_MANU = 'X'.
WA_FLDCAT-COL_POS = 1.
WA_FLDCAT-FIELDNAME = 'MATNR'.
WA_FLDCAT-OUTPUTLEN = 18.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-SELTEXT_M = 'Material No'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 2.
WA_FLDCAT-FIELDNAME = 'MTART'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Type'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 3.
WA_FLDCAT-FIELDNAME = 'MATKL'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Mat Grp'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 4.
WA_FLDCAT-FIELDNAME = 'MAKTX'.
WA_FLDCAT-OUTPUTLEN = 40.
WA_FLDCAT-SELTEXT_M = 'Material Desc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 5.
WA_FLDCAT-FIELDNAME = 'WERKS'.
WA_FLDCAT-OUTPUTLEN = 7.
WA_FLDCAT-SELTEXT_M = 'Plant'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 6.
WA_FLDCAT-FIELDNAME = 'LGORT'.
WA_FLDCAT-OUTPUTLEN = 10.
WA_FLDCAT-SELTEXT_M = 'Str.Loc'.
WA_FLDCAT-DDICTXT = 'M'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-COL_POS = 7.
WA_FLDCAT-FIELDNAME = 'LABST'.
WA_FLDCAT-OUTPUTLEN = 20.
WA_FLDCAT-SELTEXT_M = 'Qty'.
WA_FLDCAT-DDICTXT = 'M'.
WA_FLDCAT-DO_SUM = 'X'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
ELSE.
*--Auto generation of field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'ZALV3'
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME = 'ZDT2'
I_INCLNAME = 'ZALV3'
CHANGING
CT_FIELDCAT = IT_FLDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT IT_FLDCAT INTO WA_FLDCAT.
CASE WA_FLDCAT-FIELDNAME.
WHEN 'MATNR'.
WA_FLDCAT-KEY = 'X'.
WA_FLDCAT-REF_TABNAME = SPACE.
* WA_FLDCAT-HOTSPOT = 'X'.
WHEN 'MATKL' OR 'WERKS'.
WA_FLDCAT-KEY = SPACE.
WA_FLDCAT-REF_TABNAME = SPACE.
WHEN 'LGORT'.
WA_FLDCAT-KEY = SPACE.
WHEN 'LABST'.
WA_FLDCAT-DO_SUM = 'X'.
ENDCASE.
MODIFY IT_FLDCAT FROM WA_FLDCAT INDEX SY-TABIX.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " BUILD_FLDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-ZEBRA = 'X'.
*WA_LAYOUT-no_colhead = 'X'.
*WA_LAYOUT-no_vline = 'X'.
*WA_LAYOUT-no_Hline = 'X'.
*WA_LAYOUT-edit = 'X'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DO_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DO_SORT .
IT_SORT-FIELDNAME = 'MATNR'.
IT_SORT-UP = 'X'.
IT_SORT-SUBTOT = 'X'.
APPEND IT_SORT.
ENDFORM. " DO_SORT
*&---------------------------------------------------------------------*
*& Form POPULATE_EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM POPULATE_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = IT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.
ELSE.
READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'PAGE_HEADER'.
MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
READ TABLE IT_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'PAGE_FOOTER'.
MODIFY IT_EVENTS FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDFORM. " POPULATE_EVENTS
*&---------------------------------------------------------------------*
*& Form PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PAGE_HEADER .
IT_COMMENT-TYP = 'H'.
IT_COMMENT-INFO = 'Material Stock List'.
APPEND IT_COMMENT.
DESCRIBE TABLE ITAB LINES V_REC.
CONCATENATE 'No.of.Records:' V_REC INTO V_TEXT SEPARATED BY SPACE.
IT_COMMENT-TYP = 'S'.
IT_COMMENT-INFO = V_TEXT.
APPEND IT_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT[]
I_LOGO = 'ZIGROW'
* I_END_OF_LIST_GRID =
.
ENDFORM. " PAGE_HEADER
*&--------a------------------------------------------------------------*
*& Form PAGE_FOOTER
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM PAGE_FOOTER .
REFRESH IT_COMMENT.
IT_COMMENT-TYP = 'S'.
IT_COMMENT-INFO = SY-UNAME.
IT_COMMENT-KEY = 'Developed by'.
APPEND IT_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT[]
* I_LOGO =
I_END_OF_LIST_GRID = 'X'.
ENDFORM. "PAGE_FOOTER
*&---------------------------------------------------------------------*
*& Form ALV_VAR_F4
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ALV_VAR_F4 .
WA_VAR-REPORT = SY-REPID.
WA_VAR-USERNAME = SY-UNAME.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = WA_VAR
IMPORTING
ES_VARIANT = WA_VAR
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
P_VAR = WA_VAR-VARIANT.
ENDIF.
ENDFORM. " ALV_VAR_F4