0% found this document useful (0 votes)
60 views9 pages

Z120 Demo Po Report

1

Uploaded by

s4hana work
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views9 pages

Z120 Demo Po Report

1

Uploaded by

s4hana work
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

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

*& Report ZDEMO_PO_REPORT


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z120_demo_po_report.

TABLES : ekko, ekpo.

TYPES : BEGIN OF tp_list,


sel,
*from header table ekko
ebeln TYPE ebeln,
bsart TYPE ekko-bsart,
aedat TYPE erdat,
ernam TYPE ernam,
lifnr TYPE elifn,
"vendor name lfa1
name1 TYPE name1_gp,
"from item table ekpo
ebelp TYPE ebelp,
txz01 TYPE txz01,
matnr TYPE matnr,
menge TYPE bstmg,
meins TYPE bstme,
netpr TYPE bprei,
netwr TYPE bwert,
END OF tp_list,

begin of tp_ernam,
ernam type ekko-ernam,
end of tp_ernam.

data : gt_list type STANDARD TABLE OF tp_list,


gs_list type tp_list,
gt_lfa1 type STANDARD TABLE OF lfa1,
gs_lfa1 type lfa1,
gt_ernam type STANDARD TABLE OF tp_ernam,
gs_ernam type tp_ernam.

data : it_return like ddshretval occurs 0 WITH HEADER LINE.

CONSTANTS : c_bstyp type ekko-bstyp VALUE 'F'.

"alv fieldcatalog
data : gt_fcat type lvc_t_fcat,
gs_fcat like LINE OF gt_fcat,
gs_layout type lvc_s_layo,
gs_variant type disvariant,
gs_grid type lvc_s_glay,
gv_cnt type i.

data : t_header type slis_t_listheader,


wa_header type slis_listheader,

todays_dt(10),
todays_time(10).

SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.

select-OPTIONS : s_ebeln for ekko-ebeln,


s_aedat for ekko-aedat,
s_bsart for ekko-bsart MODIF ID DIS,
s_ernam for ekko-ernam NO INTERVALS NO-EXTENSION,
s_matnr for ekpo-matnr.
SELECTION-SCREEN skip.
PARAMETERS : r_r1 RADIOBUTTON GROUP grp USER-COMMAND cmd,
r_r2 RADIOBUTTON GROUP grp,
r_r3 RADIOBUTTON GROUP grp.
SELECTION-SCREEN end of BLOCK b1.

INITIALIZATION.

s_aedat-sign = 'I'.
s_aedat-option = 'BT'.
s_aedat-low = sy-datum - 365.
s_aedat-high = sy-datum.
append s_aedat.

if r_r1 is INITIAL and r_r2 is INITIAL and r_r3 is INITIAL.


r_r1 = 'X'.
endif.

AT SELECTION-SCREEN.

* if s_ernam-low is INITIAL.
* MESSAGE 'Enter the created By' TYPE 'E'.
* endif.

at SELECTION-SCREEN OUTPUT.

if r_r1 is NOT INITIAL.


clear : s_bsart[].
elseif r_r2 is NOT INITIAL.
clear : s_bsart[].

s_bsart-sign = 'I'.
s_bsart-option = 'EQ'.
s_bsart-low = 'NB'.
APPEND s_bsart.

elseif r_r3 is NOT INITIAL.

clear : s_bsart[].

s_bsart-sign = 'I'.
s_bsart-option = 'EQ'.
s_bsart-low = 'FO'.
APPEND s_bsart.

s_bsart-sign = 'I'.
s_bsart-option = 'EQ'.
s_bsart-low = 'UB'.
APPEND s_bsart.
endif.

loop at SCREEN.

if r_r1 is INITIAL and screen-group1 = 'DIS'.


screen-input = 0.
MODIFY SCREEN.
endif.

endloop.

at SELECTION-SCREEN ON VALUE-REQUEST FOR s_ernam-low.

perform get_users.

START-OF-SELECTION .
perform get_data.
perform build_data.
perform display_data.

end-of-SELECTION.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM get_data .

select a~ebeln a~bsart a~aedat a~ernam a~lifnr


b~ebelp b~txz01 b~matnr b~menge b~meins b~netpr b~netwr
from ekko as a INNER JOIN ekpo as b on a~ebeln = b~ebeln
into CORRESPONDING FIELDS OF TABLE gt_list
WHERE a~ebeln in s_ebeln
and a~bsart in s_bsart
and a~aedat in s_aedat
and a~bstyp = c_bstyp
and a~ernam in s_ernam
and b~matnr in s_matnr.

sort gt_list by lifnr.

if gt_list[] is NOT INITIAL.

select * from lfa1 into TABLE gt_lfa1


FOR ALL ENTRIES IN gt_list WHERE lifnr = gt_list-lifnr.
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form build_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM build_data .

loop at gt_list into gs_list.

clear : gs_lfa1.
read TABLE gt_lfa1 into gs_lfa1 with key lifnr = gs_list-lifnr.
if sy-subrc = 0.
gs_list-name1 = gs_lfa1-name1.
modify gt_list from gs_list TRANSPORTING name1.

endif.

clear : gs_list.
endloop.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM display_data .

clear : gv_cnt, gt_fcat[], gs_fcat.

gs_layout-col_opt = 'X'.
gs_layout-box_fname = 'SEL'.

gs_variant-report = sy-repid.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'EBELN'.
gs_fcat-coltext = 'PO Number'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'AEDAT'.
gs_fcat-coltext = 'PO Date'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'ERNAM'.
gs_fcat-coltext = 'Created By'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'BSART'.
gs_fcat-coltext = 'Doc. Type'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'LIFNR'.
gs_fcat-coltext = 'Vendor ID'.
gs_fcat-no_zero = 'X'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'NAME1'.
gs_fcat-coltext = 'Vendor Name'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'EBELP'.
gs_fcat-coltext = 'Line item'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'TXZ01'.
gs_fcat-coltext = 'Material text'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'MATNR'.
gs_fcat-coltext = 'Material'.
gs_fcat-no_zero = 'X'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'MENGE'.
gs_fcat-coltext = 'Quantity'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'MEINS'.
gs_fcat-coltext = 'UOM'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'NETPR'.
gs_fcat-coltext = 'Net Price'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

gv_cnt = gv_cnt + 1.
gs_fcat-col_pos = gv_cnt.
gs_fcat-fieldname = 'NETWR'.
gs_fcat-coltext = 'Total Amount'.
append gs_fcat to gt_fcat.
clear : gs_fcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'


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 = '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_LVC = gs_layout
IT_FIELDCAT_LVC = gt_fcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = gs_variant
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_list[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

form TOP-OF-PAGE.

write : sy-datum to todays_dt.


write : sy-uzeit to todays_time.

clear : t_header[].

wa_header-typ = 'H'.
wa_header-info = 'Purchase order details'.
append wa_header to t_header.
clear : wa_header.

wa_header-typ = 'S'.
wa_header-key = 'Report run date'.
wa_header-info = todays_dt.
append wa_header to t_header.
clear : wa_header.

wa_header-typ = 'S'.
wa_header-key = 'Report run time'.
wa_header-info = todays_time.
append wa_header to t_header.
clear : wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
it_list_commentary = t_header
* I_LOGO = 'ENJOYSAP_LOGO'
I_LOGO = 'ZKALVLOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form get_users
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM get_users .

clear : gt_ernam[].

gs_ernam-ernam = 'ZAFARK'.
append gs_ernam to gt_ernam.
clear : gs_ernam.

gs_ernam-ernam = 'DEVELOPER'.
append gs_ernam to gt_ernam.
clear : gs_ernam.

gs_ernam-ernam = 'INTEGRATION'.
append gs_ernam to gt_ernam.
clear : gs_ernam.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'ERNAM'
* PVALKEY = ' '
* DYNPPROG = sy-repid
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
VALUE_ORG = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
tables
value_tab = gt_ernam
* FIELD_TAB =
RETURN_TAB = it_return
* DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

WRITE it_return-fieldval to s_ernam-low.


refresh gt_ernam.

ENDFORM.

You might also like