You are on page 1of 4

*&---------------------------------------------------------------------*

*&
*
*&---------------------------------------------------------------------*
*&
*
*&Simple ALV List Report
*
*& ...................................
*
*&
*
*& To display a number of
*
*& fields from the EKKO table.
*
*&---------------------------------------------------------------------*
REPORT zpp_alv1
.
TABLES:

ekko.

type-pools: slis.
*Data Declaration
*---------------TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.

"ALV Declarations

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,


wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type
gd_tab_group type
gd_layout
type
gd_repid
like

slis_t_fieldcat_alv with header line,


slis_t_sp_group_alv,
slis_layout_alv,
sy-repid.

************************************************************************
*Start-of-selection.
START-OF-SELECTION.
perform
perform
perform
perform

data_retrieval.
build_fieldcatalog.
build_layout.
display_alv_report.

*&---------------------------------------------------------------------*
*&
Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*
Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
form build_fieldcatalog.
fieldcatalog-fieldname
= 'EBELN'.
fieldcatalog-seltext_m
= 'Purchase Order'.
fieldcatalog-col_pos
= 0.
fieldcatalog-outputlen
= 10.
fieldcatalog-emphasize
= 'X'.
fieldcatalog-key
= 'X'.
* fieldcatalog-do_sum
= 'X'.
* fieldcatalog-no_zero
= 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
fieldcatalog-seltext_m

= 'EBELP'.
= 'PO Item'.

fieldcatalog-col_pos
= 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'STATU'.
fieldcatalog-seltext_m
= 'Status'.
fieldcatalog-col_pos
= 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'AEDAT'.
fieldcatalog-seltext_m
= 'Item change date'.
fieldcatalog-col_pos
= 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'MATNR'.
fieldcatalog-seltext_m
= 'Material Number'.
fieldcatalog-col_pos
= 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'MENGE'.
fieldcatalog-seltext_m
= 'PO quantity'.
fieldcatalog-col_pos
= 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'MEINS'.
fieldcatalog-seltext_m
= 'Order Unit'.
fieldcatalog-col_pos
= 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'NETPR'.
fieldcatalog-seltext_m
= 'Net Price'.
fieldcatalog-col_pos
= 7.
fieldcatalog-outputlen
= 15.
fieldcatalog-datatype
= 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname
= 'PEINH'.
fieldcatalog-seltext_m
= 'Price Unit'.
fieldcatalog-col_pos
= 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform.
" BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*&
Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
*
Build layout for ALV grid report
*----------------------------------------------------------------------*
form build_layout.
gd_layout-no_input
= 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text
= 'Totals'(201).
* gd_layout-totals_only
= 'X'.
* gd_layout-f2code
= 'DISP'. "Sets fcode for when double
*
"click(press f2)
* gd_layout-zebra
= 'X'.
* gd_layout-group_change_edit = 'X'.
gd_layout-header_text
= 'Sample Code by Prem-(Winprem@gmail.com)'.
endform.
" BUILD_LAYOUT
*&---------------------------------------------------------------------*

*&
Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*
Display report using ALV grid
*----------------------------------------------------------------------*
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program
= gd_repid
i_callback_top_of_page
= 'TOP-OF-PAGE' "see FORM
*
i_callback_user_command = 'USER_COMMAND'
*
i_grid_title
= outtext
is_layout
= gd_layout
it_fieldcat
= fieldcatalog[]
*
it_special_groups
= gd_tabgroup
*
IT_EVENTS
= GT_XEVENTS
i_save
= 'X'
*
is_variant
= z_template
tables
t_outtab
= it_ekko
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_REPORT
*&---------------------------------------------------------------------*
*&
Form DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*
Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform.
" DATA_RETRIEVAL
*-------------------------------------------------------------------*
* Form TOP-OF-PAGE
*
*-------------------------------------------------------------------*
* ALV Report Header
*
*-------------------------------------------------------------------*
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
* Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info.


append wa_header to t_header.
clear: wa_header.

"todays date

* Total No. of Records Selected


describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
*
i_logo
= 'Z_LOGO'.
endform.