Professional Documents
Culture Documents
report z_phy_inv_document
message-id zmm no standard page heading .
*---------------------------------------------------------------------
* tables
*---------------------------------------------------------------------
tables : ikpf.
*--------------------------------------------------------------------
* type-pool declarations
*--------------------------------------------------------------------
type-pools : slis.
*--------------------------------------------------------------------
* types declaration
*--------------------------------------------------------------------
*-------------------------------------------------------------------
* internal tables
*-------------------------------------------------------------------
data : gi_phydocu type table of type_phydocu,
gi_mat type table of type_mat,
gi_batch type table of type_batch,
gi_final type table of type_final,
gi_iblnr type table of type_iblnr, "#ec needed
gi_werks type table of type_werks, "#ec needed
gi_lgort type table of type_lgort, "#ec needed
gi_fcat type slis_t_fieldcat_alv,
gi_event type slis_t_event,
gi_list_header type slis_t_listheader.
*-------------------------------------------------------------------
* constants
*-------------------------------------------------------------------
*----------------------------------------------------------------------
* selection-screen
*----------------------------------------------------------------------
*----------------------------------------------------------------------
* at selection-screen
*-----------------------------------------------------------------------
at selection-screen on s_iblnr.
at selection-screen on s_werks.
select werks from t001w into table gi_werks where werks in s_werks.
if sy-subrc <> 0.
message e163.
endif.
at selection-screen on s_lgort.
at selection-screen on s_gjahr.
*-----------------------------------------------------------------------
* start-of-selection
*-----------------------------------------------------------------------
start-of-selection.
perform sub_read_data.
perform sub_process_data.
*-----------------------------------------------------------------------
* end-of-selection
*-----------------------------------------------------------------------
end-of-selection.
*&---------------------------------------------------------------------*
*& form sub_read_data
*&---------------------------------------------------------------------*
form sub_read_data .
select a~werks
a~lgort
a~iblnr
a~gjahr
a~bldat
a~gidat
a~invnu
a~xblni
a~zstat
b~zeili
b~matnr
b~meins
b~charg
b~bstar
b~buchm
from ( ikpf as a inner join iseg as b on
a~iblnr = b~iblnr and
a~gjahr = b~gjahr )
into table li_phydocu
where a~iblnr in s_iblnr and
a~gjahr in s_gjahr and
a~werks in s_werks and
a~lgort in s_lgort and
a~bldat in s_bldat and
a~gidat in s_gidat and
a~invnu in s_invnu and
a~xblni in s_xblni and
a~zstat in s_zstat.
li_phydocu1[] = li_phydocu[].
sort li_phydocu1 by matnr.
delete adjacent duplicates from li_phydocu1 comparing matnr.
if sy-subrc = 0.
sort li_mat by matnr.
endif.
endif.
refresh li_phydocu1[].
li_phydocu1[] = li_phydocu[].
delete li_phydocu1 where charg is initial.
sort li_phydocu1 by matnr charg.
delete adjacent duplicates from li_phydocu1 comparing matnr charg.
lw_objkey-matnr = lw_phydocu1-matnr.
lw_objkey-charg = lw_phydocu1-charg.
lw_objkey-objek+0(18) = lw_phydocu1-matnr.
lw_objkey-objek+18 = lw_phydocu1-charg.
append lw_objkey to li_objkey.
clear : lw_phydocu1,lw_objkey.
endloop.
if sy-subrc = 0.
sort li_inob by objek.
endif.
endif.
if sy-subrc = 0.
sort li_ausp by objek.
endif.
endif.
if sy-subrc = 0.
if sy-subrc = 0.
lw_batch-matnr = lw_objkey-matnr.
lw_batch-charg = lw_objkey-charg.
lw_batch-atwrt = lw_ausp-atwrt.
endif.
endif.
endloop.
sort li_batch by matnr charg.
refresh : li_phydocu1[],li_objkey[],li_inob[],li_ausp[].
lw_final-werks = lw_phydocu-werks.
lw_final-lgort = lw_phydocu-lgort.
lw_final-iblnr = lw_phydocu-iblnr.
lw_final-zeili = lw_phydocu-zeili.
lw_final-matnr = lw_phydocu-matnr.
lw_final-meins = lw_phydocu-meins.
lw_final-charg = lw_phydocu-charg.
lw_final-bstar = lw_phydocu-bstar.
lw_final-buchm = lw_phydocu-buchm.
lw_final-gjahr = lw_phydocu-gjahr.
lw_final-bldat = lw_phydocu-bldat.
lw_final-gidat = lw_phydocu-gidat.
lw_final-invnu = lw_phydocu-invnu.
lw_final-xblni = lw_phydocu-xblni.
lw_final-zstat = lw_phydocu-zstat.
if sy-subrc = 0.
lw_final-atwrt = lw_batch-atwrt.
endif.
lw_fcat-fieldname = 'werks'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-003.
lw_fcat-outputlen = '5'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'lgort'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-004.
lw_fcat-outputlen = '4'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'iblnr'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-005.
lw_fcat-outputlen = '10'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'zeili'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-006.
lw_fcat-outputlen = '3'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'matnr'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-007.
lw_fcat-outputlen = '18'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'maktx'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-008.
lw_fcat-outputlen = '40'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'meins'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-009.
lw_fcat-outputlen = '3'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'charg'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-010.
lw_fcat-outputlen = '10'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'atwrt'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-011.
lw_fcat-outputlen = '30'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'bstar'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-012.
lw_fcat-outputlen = '1'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'buchm'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-013.
lw_fcat-outputlen = '13'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'gjahr'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-014.
lw_fcat-no_out = 'x'.
lw_fcat-outputlen = '4'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'bldat'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-015.
lw_fcat-no_out = 'x'.
lw_fcat-outputlen = '8'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'gidat'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-016.
lw_fcat-outputlen = '18'.
lw_fcat-no_out = 'x'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'invnu'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-017.
lw_fcat-outputlen = '16'.
lw_fcat-no_out = 'x'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'xblni'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-018.
lw_fcat-outputlen = '16'.
lw_fcat-no_out = 'x'.
append lw_fcat to li_fcat.
clear lw_fcat.
lw_fcat-fieldname = 'zstat'.
lw_fcat-tabname = 'gi_final'.
lw_fcat-seltext_m = text-019.
lw_fcat-outputlen = '1'.
lw_fcat-no_out = 'x'.
append lw_fcat to li_fcat.
clear lw_fcat.
clear lw_line.
lw_line-typ = 's'.
lw_line-key = text-020.
lw_line-info = sy-uname.
append lw_line to gi_list_header.
clear lw_line.
* lv_date = sy-datum.
write : sy-datum to lv_date dd/mm/yyyy.
lw_line-typ = 's'.
lw_line-key = text-021.
lw_line-info = lv_date.
append lw_line to gi_list_header.
clear lw_line.
* lv_time = sy-uzeit.
write : sy-uzeit to lv_time using edit mask '__:__:__'.
lw_line-typ = 's'.
lw_line-key = text-024.
lw_line-info = lv_time.
append lw_line to gi_list_header.
clear lw_line.
l_layout-zebra = 'x'.
clear : li_fcat[],li_event[],gi_list_header[].
*-----------------------------------------------------------------------
* top_of_page
*----------------------------------------------------------------------
form top_of_page. "#ec called
endform. "top_of_page