Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV header

Former Member
0 Likes
838

HOw to add header in ALV reports?

HOw to add header in ALV reports?

5 REPLIES 5
Read only

Former Member
0 Likes
793

Add the title in the Layout of the ALV. Layout shuold be of type lvc_s_layo.

layout-grid_title = 'Title'.

Regards,

Nithya

Read only

Former Member
0 Likes
793

hi,

u need to pass the values to the alv grid / list function module for header.

SLIS_T_LISTHEADER - is the structure used for header .

pass the internal table in REUSE_ALV_COMMENTARY_WRITE FM

and then pass the event table to alv grid / list FM

reward points if helpful

Read only

Former Member
0 Likes
793

Hi

Check this program

*&----


*& THIS PROGRAM IS TO DISPLAY AN ALV REPORT ACCORDING TO THE

*& SALES ORDER NUMBER PROVIDED *

*& *

&----


REPORT z6smahajan_s_salesorder NO STANDARD PAGE HEADING MESSAGE-ID z6suruchi.

***********************************************************************

*& TYPE-POOL

***********************************************************************

TYPE-POOLS: slis.

&----


*& TABLES *

&----


TABLES: vbak, "SALES ORDER HEADER

vbap, "DETAILS

vbpa, "Sales Document: Partner

tpart. "Business Partner Functions: Texts

&----


*& DECLARATION OF INTERNAL TABLES *

&----


*This internal table would be used for the display of all the sales data.

DATA: BEGIN OF it_sales OCCURS 0,

vbeln LIKE vbak-vbeln, "Sales Document

posnr LIKE vbap-posnr, "Item number of the SD document

kunnr LIKE vbak-kunnr, "SOLD TO PARTY

erdat LIKE vbak-erdat, "Date on which the record was created

matnr LIKE vbap-matnr, "MATERIAL number

arktx LIKE vbap-arktx, "Short Text for Sales Order Item

vtext LIKE tpart-vtext, "DESCRIPTION

sp LIKE vbpa-kunnr, "Sold to party

bp LIKE vbpa-kunnr, "Bill to party

py LIKE vbpa-kunnr, "payee

sh LIKE vbpa-kunnr, "Ship to party

END OF it_sales.

*This internal table will contain the data related to partner functions.

DATA: BEGIN OF it_partner OCCURS 0,

vbeln LIKE vbak-vbeln, "Sales Document

parvw LIKE vbpa-parvw, "Partner function

kunnr LIKE vbpa-kunnr,

END OF it_partner.

  • This table would contain all distinct partner functions.

DATA : BEGIN OF i_vbpa OCCURS 0,

parvw LIKE vbpa-parvw,

END OF i_vbpa.

&----


*& DECLARATION OF VARIABLES *

&----


DATA : v_count TYPE i.

DATA: <b>i_header TYPE slis_t_listheader,</b>

**----THIS WILL BE USED TO DISPLAY THE HEADER

fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

**----Table for catalog of the fields to be displayed

i_layout TYPE slis_layout_alv,

**----LAYOUT To pass the overall structure of the ALV report

v_repid LIKE sy-repid,

**----To pass name of the report in function module for ALV

i_event TYPE slis_t_event,

**----TO DEFINE THE EVENT CATALOG-Internal table to capture various events in ALV

t_event TYPE slis_alv_event.

**----THIS IS A STRUCTURE TO HANDLE DIFFERENT EVENTS

&----


*& SELECTION SCREEN *

&----


SELECTION-SCREEN BEGIN OF BLOCK blk1.

**----For sales order number

SELECT-OPTIONS : s_vbeln FOR vbak-vbeln OBLIGATORY.

**----For date of creation

SELECT-OPTIONS : s_erdat FOR vbak-erdat.

SELECTION-SCREEN END OF BLOCK blk1.

&----


*& AT SELECTION-SCREEN *

*& VALIDATION FOR THE INPUT IN THE SELECTION SCREEN

&----


AT SELECTION-SCREEN.

**---- Validate Sales Order number entered

PERFORM validate_sales_order.

&----


*& START-OF-SELECTION *

&----


START-OF-SELECTION.

**---- Select Data based on the selection criteria.

PERFORM select_data.

**---- Build Event Catalog

PERFORM zf_eventcat USING i_event.

**---- Build Fieldcat

PERFORM zf_fieldcat USING fieldcatalog[]. "FOR DEFINING FIELDCATALOG FOR FIRST SCREEN

**---- Create Layout

PERFORM zf_layout.

**---- Display ALV Grid Report

PERFORM display_alv.

*----


  • TOP_OF_PAGE

*----


<b>FORM top_of_page.</b>

REFRESH i_header.

**----To display the header in the ALV report.

<b>PERFORM zf_header USING i_header.</b>

**----To print the headings and other comments for the list.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header

i_logo = 'ENJOYSAP_LOGO'.

ENDFORM. "TOP_OF_PAGE

&----


*& Form zf_header

*& To display the header in the ALV report.

&----


<b>FORM zf_header USING p_i_header TYPE slis_t_listheader.

DATA: t_header TYPE slis_listheader.

DATA: v_text(10).

WRITE sy-datum TO v_text.

CLEAR t_header.

t_header-typ = 'S'.

t_header-key = 'Date'.

t_header-info = v_text.

APPEND t_header TO p_i_header.

ENDFORM. " zf_header</b>.

&----


*& Form SELECT_DATA

**---- Select Data based on the selection criteria.

&----


FORM select_data .

CLEAR it_sales.

SELECT vbak~vbeln

vbak~kunnr

vbak~erdat

vbap~posnr

vbap~matnr

vbap~arktx

INTO CORRESPONDING FIELDS OF TABLE it_sales

FROM vbak INNER JOIN vbap

ON vbakvbeln = vbapvbeln

WHERE vbakvbeln IN s_vbeln AND vbakerdat IN s_erdat.

**----If no data exists, stop execution

IF sy-subrc <> 0.

MESSAGE e057.

ENDIF.

SELECT vbeln

parvw

kunnr

FROM vbpa

INTO CORRESPONDING FIELDS OF TABLE it_partner

FOR ALL ENTRIES IN it_sales

WHERE vbeln = it_sales-vbeln.

**----If no data exists, stop execution

IF sy-subrc <> 0.

MESSAGE i002(sy) WITH 'NO DATA TO PROCESS'.

LEAVE LIST-PROCESSING.

ENDIF.

LOOP AT it_partner.

MOVE it_partner-parvw TO i_vbpa-parvw.

COLLECT i_vbpa.

CLEAR i_vbpa.

ENDLOOP.

SORT i_vbpa.

**----To move the partner function data to the table it_sales which would be finally passed to ALV

LOOP AT it_sales.

LOOP AT i_vbpa.

READ TABLE it_partner WITH KEY vbeln = it_sales-vbeln

parvw = i_vbpa-parvw.

IF sy-subrc = 0.

  • if partner function is Sold to party

IF i_vbpa-parvw = 'AG'.

it_sales-sp = it_partner-kunnr.

ENDIF.

  • If partner function is Bill to party

IF i_vbpa-parvw = 'RE'.

it_sales-bp = it_partner-kunnr.

ENDIF.

  • If partner function is ship to party

IF i_vbpa-parvw = 'WE'.

it_sales-sh = it_partner-kunnr.

ENDIF.

  • if partner function is Payee

IF i_vbpa-parvw = 'RG'.

it_sales-py = it_partner-kunnr.

ENDIF.

ENDIF.

ENDLOOP.

  • To modify the internal table after copying the partner function values

MODIFY it_sales.

  • To clear the work areas of the three internal tables

CLEAR : it_sales,

it_partner,

i_vbpa.

ENDLOOP.

ENDFORM. " SELECT_DATA

&----


*& Form zf_eventcat

    • To Build Event Catalog

&----


FORM zf_eventcat USING p_i_event TYPE slis_t_event.

DATA: l_event TYPE slis_alv_event.

**----Returns table of possible events for a list type

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = p_i_event

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.

ENDIF.

CLEAR t_event.

READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO t_event-form.

MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.

ENDIF.

ENDFORM. " zf_eventcat

&----


*& Form zf_fieldcat

&----


*

----


FORM zf_fieldcat USING p_fieldcatalog TYPE slis_t_fieldcat_alv.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED.

fieldcatalog-seltext_m = 'SALES NO'. " MEDIUM TEXT FOR HEADER.

fieldcatalog-col_pos = 1. " POSITION OF THE COLUMN.

fieldcatalog-outputlen = 20. " SET THE OUTPUT LENGTH.

fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.

fieldcatalog-key = 'X'. " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

fieldcatalog-hotspot = 'X'. " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'ERDAT'. " FIELD FOR WHICH CATALOG ID FILLED.

fieldcatalog-seltext_m = 'CRTD ON'. " MEDIUM TEXT FOR HEADER.

fieldcatalog-col_pos = 2. " POSITION OF THE COLUMN.

fieldcatalog-outputlen = 20. " SET THE OUTPUT LENGTH.

fieldcatalog-emphasize = 'X'. " COLOR OF THIS COLUMN.

fieldcatalog-key = 'X'. " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.

fieldcatalog-hotspot = 'X'. " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'MAT NO'.

fieldcatalog-col_pos = 3.

fieldcatalog-outputlen = 20.

fieldcatalog-key = 'X'.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'POSNR'.

fieldcatalog-seltext_m = 'ITEM NO'.

fieldcatalog-col_pos = 4.

fieldcatalog-outputlen = 20.

fieldcatalog-key = 'X'.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'ARKTX'.

fieldcatalog-seltext_m = 'DESC'.

fieldcatalog-col_pos = 5.

fieldcatalog-outputlen = 25.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'SP'.

fieldcatalog-seltext_m = 'SP'.

fieldcatalog-col_pos = 6.

fieldcatalog-outputlen = 25.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'BP'.

fieldcatalog-seltext_m = 'BP'.

fieldcatalog-col_pos = 7.

fieldcatalog-outputlen = 25.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'PY'.

fieldcatalog-seltext_m = 'PY'.

fieldcatalog-col_pos = 8.

fieldcatalog-outputlen = 25.

APPEND fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'SH'.

fieldcatalog-seltext_m = 'SH'.

fieldcatalog-col_pos = 9.

fieldcatalog-outputlen = 25.

APPEND fieldcatalog.

ENDFORM. " zf_fieldcat

&----


*& Form zf_layout

*& Create Layout

----


FORM zf_layout .

i_layout-zebra = 'X'.

ENDFORM. " zf_layout

&----


*& Form DISPLAY_ALV

  • Display ALV Grid Report

----


FORM display_alv .

v_repid = sy-repid.

  • To display the data in internal table it_sales in grid format.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

is_layout = i_layout

it_fieldcat = fieldcatalog[]

it_events = i_event[]

TABLES

t_outtab = it_sales

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. " DISPLAY_ALV

&----


*& Form validate_sales_order

&----


**---- Validate Sales Order number entered

----


FORM validate_sales_order .

**---- Variable to hold the Sales Order Value.

DATA : w_vbeln LIKE vbak-vbeln.

CLEAR w_vbeln.

SELECT SINGLE vbeln

FROM vbak

INTO w_vbeln

WHERE vbeln IN s_vbeln.

**---- If not found, stop execution

IF sy-subrc NE 0.

SET CURSOR FIELD 'S_VBELN-LOW'.

MESSAGE e002(sy) WITH 'No Sales Order Found'.

ENDIF.

ENDFORM. " validate_sales_order

Message was edited by:

Suruchi Mahajan

Read only

Former Member
0 Likes
793

Hi

Check the code.

Reward if usefull.

*Program to Test ALV Display With Header & Footer.

&----


*& Report ZSSK02 *

&----


REPORT ZSSK02 .

*Table declaration.

TABLES:ZEMP_MST,ZDEPT_MST,ZDESG_MST,ZSL_TXN.

*Varriable declaration.

TYPE-POOLS SLIS.

DATA : POS TYPE I.

DATA REPID LIKE SY-REPID.

DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,

F2 TYPE SLIS_FIELDCAT_ALV,

L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA L_POS TYPE I VALUE 1. "position of the column

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

*DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

*Internal table declaration.

*DATA BEGIN OF IT_SORT OCCURS 5.

  • INCLUDE TYPE SLIS_SORTINFO_ALV.

*DATA END OF IT_SORT.

DATA:BEGIN OF ITAB OCCURS 0,

ZEMPNO LIKE ZEMP_MST-ZEMPNO,

ZEMPNAME LIKE ZEMP_MST-ZEMPNAME,

ZDEPTCD LIKE ZEMP_MST-ZDEPTCD,

ZDEPTNAME LIKE ZDEPT_MST-ZDEPTNAME,

ZDESGCD LIKE ZEMP_MST-ZDESGCD,

ZDESGNAME LIKE ZDESG_MST-ZDESGNAME,

END OF ITAB.

REFRESH ITAB.CLEAR ITAB.

START-OF-SELECTION.

SELECT AZEMPNO AZEMPNAME AZDEPTCD BZDEPTNAME AZDESGCD CZDESGNAME

FROM ZEMP_MST AS A

INNER JOIN ZDEPT_MST AS B

ON AZDEPTCD EQ BZDEPTCD

INNER JOIN ZDESG_MST AS C

ON AZDESGCD EQ CZDESGCD

INTO CORRESPONDING FIELDS OF TABLE ITAB.

IF SY-SUBRC <> 0.

MESSAGE E899(M3) WITH 'No records'.

ENDIF.

perform f_build_eventcat.

PERFORM LAYOUT.

END-OF-SELECTION.

&----


*& Form LAYOUT

&----


FORM LAYOUT .

PERFORM FCAT USING 'ZEMPNO' 'ITAB' '' 'Emp.No.' 'ZEMPNO' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZEMPNAME' 'ITAB' '' 'Emp. Name' 'ZEMPNAME' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTCD' 'ITAB' '' 'Dept.Code' 'ZDEPTCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTNAME' 'ITAB' '' 'Dept.Name' 'ZDEPTNAME' 'ZDEPT_MST' ''.

PERFORM FCAT USING 'ZDESGCD' 'ITAB' '' 'Desg.Code' 'ZDESGCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDESGNAME' 'ITAB' '' 'Desg.Name' 'ZDESGNAME' 'ZDESG_MST' ''.

  • PERFORM LSORT USING 'ZEMPNO' 'IDATA' ''.

  • PERFORM LSORT USING 'ZEMPNAME' 'IDATA' ''.

  • MOVE IT_SORT[] TO GT_SORT[].

REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = F1

  • IT_SORT = GT_SORT

I_SAVE = 'X'

IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = ITAB.

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. " LAYOUT

&----


*& Form FCAT

&----


FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.

ADD 1 TO POS.

F2-COL_POS = POS.

F2-FIELDNAME = P_FIELD.

F2-TABNAME = P_TABLE.

F2-SELTEXT_L = P_TEXT.

F2-REF_FIELDNAME = P_RFIELD.

F2-REF_TABNAME = P_RTABLE.

F2-DO_SUM = P_SUM.

F2-NO_OUT = P_DISP.

APPEND F2 TO F1.

CLEAR F2.

ENDFORM. " FCAT

&----


*& Form LSORT

&----


*FORM LSORT USING P_FIELD P_TABLE P_UP.

  • ADD 1 TO L_POS.

  • IT_SORT-SPOS = L_POS.

  • IT_SORT-FIELDNAME = P_FIELD.

  • IT_SORT-TABNAME = P_TABLE.

  • IT_SORT-UP = P_UP.

  • APPEND IT_SORT.

*ENDFORM. " LSORT

*----


FORM F_BUILD_EVENTCAT .

CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.

FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.

APPEND FS_EVENTCAT TO GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'END_OF_LIST'.

FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.

APPEND FS_EVENTCAT TO GT_EVENTS.

ENDFORM. " F_BUILD_EVENTCAT

FORM F_REPORT_HEADER_ALV.

CALL FUNCTION 'Z_YHEAD_PRINT'

EXPORTING

TITLE1 = 'XYZ Limited'

TITLE2 = 'Employee Master'

TITLE3 = 'Created on '

COLOR = 'X'

.

ENDFORM.

&----


*& Form F_WRITE_SUMMARY

&----


  • Write summary before exit

----


FORM F_WRITE_SUMMARY .

write:/ 'Welcome to XYZ Limited'.

write:/ 'This is a test program to display Report in ALV Format'.

ENDFORM.

Regards

shibino

Read only

Former Member
0 Likes
793

Hi,

Just add :

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

...

i_callback_top_of_page = 'TOP_OF_PAGE'

...

and define your header :

FORM top_of_page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader.

CLEAR wa_header.

wa_header-typ = 'H'.

wa_header-info = 'Header ALV'.

APPEND wa_header TO t_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

ENDFORM. "top-of-page

Regards.