Thursday, September 23, 2010

Alv with header in bold

REPORT zkat.

TYPE-POOLS: SLIS.

TABLES: MARA.

DATA: BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
END OF IT_MARA.

DATA: IT_FIELD_CAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELD_CAT TYPE SLIS_FIELDCAT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT,
IT_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM BUILD_FIELD_CAT.

PERFORM GET_EVENTS.

PERFORM DISPLAY_DATA.

*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .

SELECT MATNR
MTART
MATKL
FROM MARA
INTO TABLE IT_MARA
WHERE MATNR IN S_MATNR.

ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form build_field_cat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_FIELD_CAT .

CLEAR WA_FIELD_CAT.

WA_FIELD_CAT-COL_POS = 1.
WA_FIELD_CAT-FIELDNAME = 'MATNR'.
WA_FIELD_CAT-SELTEXT_L = 'Material Number'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.

WA_FIELD_CAT-COL_POS = 2.
WA_FIELD_CAT-FIELDNAME = 'MTART'.
WA_FIELD_CAT-SELTEXT_L = 'Material Type'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.

WA_FIELD_CAT-COL_POS = 3.
WA_FIELD_CAT-FIELDNAME = 'MATKL'.
WA_FIELD_CAT-SELTEXT_L = 'Material Group'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.

ENDFORM. " build_field_cat

*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = IT_FIELD_CAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = IT_MARA.

ENDFORM. " display_data

*&---------------------------------------------------------------------*
*& Form get_events
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = IT_EVENTS .

READ TABLE IT_EVENTS INTO WA_EVENTS
WITH KEY NAME = SLIS_EV_TOP_OF_PAGE.
IF SY-SUBRC = 0.
WA_EVENTS-FORM = 'TOP_OF_PAGE'.
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.

ENDFORM. " get_events

*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.

WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'Material Data'.
APPEND WA_HEADER TO IT_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_HEADER.

ENDFORM. "top_of_page

1 comment:

  1. Put the declarations of the metrics of the header out of the call...Dont put them in the FORM..........


    REPORT YTRV_TEST.

    TYPE-POOLS: slis. "SLIS contains all the ALV data types'

    *&#######################*
    *& Data Declaration
    *&#######################*

    DATA: lt_sflight TYPE TABLE OF sflight.
    DATA: g_repid TYPE sy-repid.
    *ALV Header declarations
    DATA: lt_header TYPE slis_t_listheader,
    ls_header TYPE slis_listheader,
    lt_line LIKE ls_header-info,
    lv_lines TYPE i,
    lv_linesc(10) TYPE c.
    *&## Alv report header ##*
    * Title
    ls_header-typ = 'H'.
    ls_header-info = 'SFLIGHT Table Report Testing it'.
    APPEND ls_header TO lt_header.


    * Date
    ls_header-typ = 'S'.
    ls_header-key = 'Date: '.
    CONCATENATE sy-datum+6(2) '.'
    sy-datum+4(2) '.'
    sy-datum(4) INTO ls_header-info. "todays date
    APPEND ls_header TO lt_header.



    *&#######################*
    *& START-OF-SELECTION
    *&#######################*
    START-OF-SELECTION.

    g_repid = sy-repid.

    SELECT *
    FROM sflight
    INTO TABLE lt_sflight.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = g_repid
    i_callback_top_of_page = 'TOP_OF_PAGE2'
    i_structure_name = 'SFLIGHT'
    TABLES
    t_outtab = lt_sflight
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.

    *####################*
    * Form TOP-OF-PAGE
    * Generating Report Header
    *####################*
    FORM top_of_PAGE2.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING

    it_list_commentary = lt_header.
    ENDFORM. "top-of-list

    ReplyDelete