Skip to Content
0
Former Member
Dec 04, 2008 at 03:45 AM

How to get header in the ALV report

230 Views

Hi

I want to print header in the ALV report.But i am not getting that.Plz see my program it is getting error and also not printing header.If there is any error means plz give me the solution.In this program there is an error.

REPORT ZREPORT_ALV .

TYPE-POOLS : slis.

tables:vbak,vbap.

DATA: report_id LIKE sy-repid.

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.

data: heading TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

events TYPE slis_t_event.

data: l_string type c.

data: ivariant(1) type c,

itvariant like disvariant,

w_variant like disvariant.

initialization.

REPORT_ID = SY-REPID.

PERFORM pgm. "F1000_LAYOUT_INIT. "using I_LAYOUT.

ivariant = 'A'.

*PERFORM init.

itvariant = w_variant.

select-options:so_vbeln for vbap-vbeln.

data:itab like vbak occurs 0 with header line.

data:itab1 like vbap occurs 0 with header line.

start-of-selection.

select * from vbak into table itab where vbeln in so_vbeln.

if not itab[] is initial.

select * from vbap into table itab1

for all entries in itab

where vbeln = itab-vbeln.

endif.

data:ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat1 TYPE slis_t_fieldcat_alv.

****For alv display

IF NOT itab1[] IS INITIAL.

DEFINE ls_fieldcat.

add 1 to ls_fieldcat-col_pos.

ls_fieldcat-fieldname = &1.

ls_fieldcat-outputlen = &2.

ls_fieldcat-seltext_l = &3.

  • ls_fieldcat-emphasize = &4.

append ls_fieldcat to lt_fieldcat1.

clear ls_fieldcat.

END-OF-DEFINITION.

ls_fieldcat 'VBELN' '10' 'Sales Order Number'.

ls_fieldcat 'POSNR' '6' 'SO Item'.

ls_fieldcat 'MATNR' '13' 'Material No'.

  • m_fieldcat1 'NETWR' '13' 'Amount'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = sy-repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = lt_fieldcat1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

IS_VARIANT = ITVARIANT

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

  • 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.

endif.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = ivariant

CHANGING

CS_VARIANT = itvariant

  • EXCEPTIONS

  • WRONG_INPUT = 1

  • NOT_FOUND = 2

  • PROGRAM_ERROR = 3

  • OTHERS = 4

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

FORM pgm. "F1000_LAYOUT_INIT. "USING I_LAYOUT TYPE SLIS_LAYOUT_ALV.

CLEAR I_LAYOUT.

i_layout-colwidth_optimize = 'X'.

  • I_LAYOUT-key_hotspot = u2018Xu2019.

  • I_LAYOUT-hotspot_fieldname = MATNR.

ENDFORM.

*regarding logo and header,,,,

*

*first store the logo in T-code OAOR, then call that in your report.....

*..

*data: heading TYPE slis_t_listheader,

  • wa_header TYPE slis_listheader,

  • events TYPE slis_t_event.

*

  • To display TOP_OF_PAGE.

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

FORM top_of_page.

DATA : text(40),txtdt(40).

CLEAR l_string.

l_string = 'JCB India Limited'(hd2).

wa_header-typ = 'H'.

wa_header-info = l_string.

APPEND wa_header TO heading. " index 1.

CLEAR l_string.

WRITE :'Number of records:' TO text,'dbcnt' TO text+20 LEFT-JUSTIFIED.

wa_header-typ = 'S'.

wa_header-info = text.

APPEND wa_header TO heading.

  • CLEAR l_string.

  • wa_header-typ = 'S'.

  • WRITE : 'Report Run Date :' TO txtdt,sy-datum TO txtdt+20 DD/MM/YY.

  • WRITE sy-datum TO dat DD/MM/YY.

  • wa_header-info = txtdt.

  • APPEND wa_header TO heading.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = heading.

CLEAR heading.

ENDFORM. "top_of_page

*to execute top-of-page you have to create events.

*for ex......

FORM create_event USING p_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = p_events.

READ TABLE p_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE formname_top_of_page TO ls_event-form.

APPEND ls_event TO p_events.

ENDIF.

ENDFORM. " create_event