Vous êtes sur la page 1sur 9

REPORT zrj_task_alv_report1.

"creating structure for header report"


TYPES : BEGIN OF ty_po_head,
check TYPE c,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
bsart TYPE ekko-bsart,
aedat TYPE ekko-aedat,
bedat TYPE ekko-bedat,
ernam TYPE ekko-ernam,
lifnr TYPE ekko-lifnr,
ekorg TYPE ekko-ekorg,
ekgrp TYPE ekko-ekgrp,

END OF ty_po_head.

"creating structure for item table"

TYPES : BEGIN OF ty_po_item,


ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
werks TYPE ekpo-werks,
lgort TYPE ekpo-lgort,
menge TYPE ekpo-menge,
netpr TYPE ekpo-netpr,
bukrs TYPE bukrs,
netwr TYPE ekpo-netwr,
END OF ty_po_item.

"declaring internal table"


DATA : it_po_head TYPE TABLE OF ty_po_head,
wa_po_head TYPE ty_po_head,

it_po_item TYPE TABLE OF ty_po_item,


wa_po_item TYPE ty_po_item.

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

DATA: it_fieldcat TYPE slis_t_fieldcat_alv, "ALV LAYOUT FIELD CATALOG D


eclaration
wa_fieldcat TYPE slis_fieldcat_alv,

it_fieldcat1 TYPE slis_t_fieldcat_alv, "ALV LAYOUT FIELD CATALOG D


eclaration
wa_fieldcat1 TYPE slis_fieldcat_alv.

*&-------------------------------------------------------------------------
--------------------------&
DATA: it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,

it_item_header TYPE slis_t_listheader,


wa_item_header TYPE slis_listheader,

it_sort TYPE slis_t_sortinfo_alv,


wa_sort TYPE slis_sortinfo_alv.

DATA: s_repid LIKE sy-repid.


s_repid = sy-repid.

DATA : wa_layout TYPE slis_layout_alv.


DATA : wa_layout1 TYPE slis_layout_alv.

"GENERATING ALV REPORT"


PERFORM data_fetch.
PERFORM field_catalog_purc_head.
PERFORM field_catalog_purc_item.
PERFORM display_report.
*&---------------------------------------------------------------------*

DATA : it_ekko TYPE TABLE OF ekko, " function module.


wa_ekko TYPE ekko,
it_ekpo TYPE TABLE OF ekpo,
wa_ekpo TYPE ekpo,
max_num TYPE int2.

TYPE-POOLS: slis.
TABLES : ekko,ekpo.
SELECT-OPTIONS s_aedat FOR ekpo-aedat.
PARAMETERS s_ekorg TYPE ekko-ekorg.

CALL FUNCTION 'ZALV_SPEC'


EXPORTING
s_aedat = s_aedat[]
s_ekorg = s_ekorg
max_num = max_num
TABLES
it_ekko = it_ekko
it_ekpo = it_ekpo.
LOOP AT it_ekko INTO wa_ekko.
WRITE : /,ekko-ebeln.
SKIP.
ENDLOOP.

*--------------------------------------------------------------------------
----------------------------------

FORM display_report .

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 = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
i_grid_title = 'PURCHASE HEADER DOCUMENTS'
* I_GRID_SETTINGS =
* is_layout = wa_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
* IS_VARIANT =
* IT_EVENTS = gt_events
* IT_EVENT_EXIT =
* IS_PRINT = gd_prntparams
* 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 = it_po_head
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc = 0.
**for to handle user command
ENDIF.

ENDFORM. " DISPLAY_REPORT


FORM user_command USING ucomm TYPE sy-ucomm
selfield TYPE slis_selfield.

DATA : purno TYPE ekko-ebeln.


CASE ucomm.

WHEN '&IC1'.
READ TABLE it_po_head INTO wa_po_head INDEX selfield-tabindex.
purno = wa_po_head-ebeln.
IF it_po_head IS NOT INITIAL.
SELECT ebeln
ebelp
matnr
aedat
bukrs
werks
lgort
menge
netpr
netwr
FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE it_po_item
WHERE ebeln = purno.
ENDIF.

IF sy-subrc = 0.
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 = 'user_command'
i_callback_top_of_page = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
i_grid_title = 'PURCHASE ITEM DOCUMENTS'
* I_GRID_SETTINGS =
* is_layout = wa_layout1
it_fieldcat = it_fieldcat1
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* i_save = 'X'
* IS_VARIANT =
* IT_EVENTS = gt_events
* IT_EVENT_EXIT =
* IS_PRINT = gd_prntparams
* 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 = it_po_item
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDCASE.

ENDFORM.

FORM data_fetch .

SELECT ebeln
bukrs
bsart
aedat

ernam
lifnr
ekorg
ekgrp
angnr
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_po_head
UP TO 50 ROWS.

ENDFORM.

FORM top_of_page.
*ALV Header declarations
REFRESH it_header.
* Title
wa_header-typ = 'H'.
wa_header-info = 'VIDHAI TECHNOLOGIES PVT.LTD.,'.
APPEND wa_header TO it_header.
CLEAR wa_header.

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

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
it_list_commentary = it_header
i_logo = 'VIDHAI_LOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.

ENDFORM. " ALV_HEADER

*-------------------------------------------------------------------*
* Form TOP-OF-PAGE *
*-------------------------------------------------------------------*
* ALV Report Header *
*-------------------------------------------------------------------*

FORM top_of_page1.

*ALV Header declarations

" H is used to display headers (BIG FONT)"

wa_item_header-typ = 'H'.
wa_item_header-info = 'PURCHASE ITEM DETAILS'.
APPEND wa_item_header TO it_item_header.
CLEAR wa_item_header.

" S is used to display key and value pairs"

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

" Type A is used to display italic font"

wa_item_header-typ = 'A'.
wa_item_header-info ='SAP ALV Report'.
APPEND wa_item_header TO it_item_header.
CLEAR wa_item_header.

* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


* EXPORTING
* it_list_commentary = it_item_header
* i_logo = 'VIDHAI_LOGO'
** I_END_OF_LIST_GRID =
** I_ALV_FORM =
* .
ENDFORM. " ALV_HEADER

FORM field_catalog_purc_item .
*Build field catalog
wa_fieldcat1-fieldname = 'EBELN'. " Fieldname in the data table
wa_fieldcat1-
seltext_m = 'PURCHASE DOC. NO'. " Column description in the output
wa_fieldcat1-hotspot = 'X'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'EBELP'.
wa_fieldcat1-seltext_m = 'PURCHASE ITEM NO'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'MATERIAL NO.'.


wa_fieldcat1-seltext_m = 'MATNR'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'BUKRS'.
wa_fieldcat1-seltext_m = 'COMPANY CODE'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'WERKS'.
wa_fieldcat1-seltext_m = 'PLANT'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'LGORT'.
wa_fieldcat1-seltext_m = 'STORAGE LOCATION'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'MENGE'.
wa_fieldcat1-seltext_m = 'ORDER QUANTITY'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'NETPR'.
wa_fieldcat1-seltext_m = 'NET PRICE'.
* wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

wa_fieldcat1-fieldname = 'NETWR'.
wa_fieldcat1-seltext_m = 'NET ORDER'.
APPEND wa_fieldcat1 TO it_fieldcat1.
CLEAR wa_fieldcat1.

*Build sort catalog


wa_sort-spos = 1.
wa_sort-fieldname = 'EBELN'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.

**Build sort catalog FOR SUBTOTAL


wa_sort-spos = 8.
wa_sort-fieldname = 'NETPR'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.
ENDFORM. " FIELD_CATALOG_PURC_ITEM
FORM field_catalog_purc_head .
REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'. " Fieldname in the data table


wa_fieldcat-
seltext_m = 'PURCHASE DOC. NO'. " Column description in the output

wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'BUKRS'.
wa_fieldcat-seltext_m = 'COMPANY CODE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'BSART'.
wa_fieldcat-seltext_m = 'DOC. TYPE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.
wa_fieldcat-seltext_m = 'DATE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'VENDOR NUMBER'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'EKORG'.
wa_fieldcat-seltext_m = 'PURCHASE ORG.'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'EKGRP'.
wa_fieldcat-seltext_m = 'PRURCHASE GRP'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'BEDAT'.
wa_fieldcat-seltext_m = 'PRURCHASE DOCUMENT DATE'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_m = 'NAME OF THE PERSON WHO CREATED OBJECT'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ANGNR'.
wa_fieldcat-seltext_m = 'Quotation Number'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

ENDFORM.

Vous aimerez peut-être aussi