*&---------------------------------------------------------------------*
*& Report ZTEST
*&
*&-------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLALITEST.
tables:vbak,lips,vttp,vttk.
data:begin of itab occurs 0,
f(256),
end of itab.
data:begin of file_list occurs 0,
name(90),
end of file_list.
data:begin of itab_show occurs 0,
tpbez like vttk-tpbez,
tknum like vttp-tknum,
vbeln like lips-vbeln,
matnr like lips-matnr,
lfimg like lips-lfimg,
end of itab_show.
data:begin of itab_out occurs 0,
vbeln(20),
end of itab_out.
ranges r_vbeln for vbak-vbeln.
data: t_list like epsfili occurs 0 withheader line.
data: w_dir like epsf-epsdirnam.
data: len1 type i.
data: len2 type i.
data: len3 type i.
data:str type string.
parameters: p_path1 like rlgrap-filenameobligatory default '\\fs01\temp\lali\del\',
p_path2 like rlgrap-filename obligatory default '\\fs01\temp\lali\rmalist\',
p_format(5) default '.txt'.
parameters: r_ship radiobutton group rad1default 'X',
r_deli radiobutton group rad1,
r_get_b radiobutton group rad1.
w_dir = p_path1.
call function 'EPS_GET_DIRECTORY_LISTING'
exporting
dir_name = w_dir
* FILE_MASK = '*.TXT'
* IMPORTING
* DIR_NAME =
* FILE_COUNTER =
* ERROR_COUNTER =
tables
dir_list = t_list
exceptions
invalid_eps_subdir = 1
sapgparam_failed = 2
build_directory_failed = 3
no_authorization = 4
read_directory_failed = 5
too_many_read_errors = 6
empty_directory_list = 7
others = 8.
len1 = strlen( p_format ).
loop at t_list.
len2 = strlen( t_list-name ).
iflen2 >= len1.
len2 = len2 - len1.
endif.
* len2 = len2 - 1.
str= t_list-name+len2(len1).
translate str to upper case.
ifstr = p_format.
file_list-name = t_list-name.
append file_list.
endif.
endloop.
data temp_str(256).
loop at file_list.
concatenatep_path1 file_list-name into temp_str.
* open dataset temp_str for input in text mode encoding non-unicode withsmart linefeed.
open dataset temp_str for input in text mode encoding utf-8 with smartlinefeed.
do.
read dataset temp_str into itab .
if sy-subrc <> 0.
exit.
close dataset temp_str.
endif.
append itab.
enddo.
loop at itab.
r_vbeln-sign = 'I'.
r_vbeln-option = 'EQ'.
r_vbeln-low = itab-f.
append r_vbeln.
endloop.
ifr_ship = 'X' and not r_vbeln is initial .
perform get_rma_number using 'SHIPMENT'.
elseif r_deli = 'X'.
perform get_rma_number using 'del'.
elseif r_get_b = 'X' and not r_vbeln is initial.
perform get_system_menge.
endif.
concatenate 'RMANO_LIST_' file_list-name into file_list-name.
concatenate p_path2 file_list-name into temp_str.
* open dataset temp_str for output in text mode encoding non-unicode withsmart linefeed.
open dataset temp_str for output in text mode encoding utf-8 with smartlinefeed.
loop at itab_out.
transfer itab_out-vbeln to temp_str.
endloop.
close dataset temp_str.
endloop.
*&---------------------------------------------------------------------*
*& Form GET_RMA_NUMBER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0245 text
*----------------------------------------------------------------------*
form get_rma_number using sign.
ifsign = 'SHIPMENT'.
select distinct c~bstnk
into table itab_out
from vttp as a inner join
lips as b on a~vbeln = b~vbeln inner join
vbak as c on b~vgbel = c~vbeln
where tknum in r_vbeln.
elseif sign = 'del' and not r_vbeln is initial.
select distinct b~bstnk
into table itab_out
from lips as a inner join
vbak as b on a~vgbel = b~vbeln
where a~vbeln in r_vbeln.
endif.
endform. " GET_RMA_NUMBER
*&---------------------------------------------------------------------*
*& Form GET_SYSTEM_MENGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form get_system_menge.
data menge like lips-lfimg.
select c~tpbez a~tknum b~vbeln b~matnr b~lfimg
into table itab_show
from vttk as c inner join vttp as a
on c~tknum = a~tknum
inner join lips as b on a~vbeln = b~vbeln
where tpbez in r_vbeln.
format color 4.
write:(30) 'CLRID',
(30) 'SHIPMENT',
(30) 'DELIVERY',
(30) 'MATERIAL',
(30) 'QTY'.
sort itab_show by tpbez.
menge = 0.
loop at itab_show.
write:(30) itab_show-tpbez,
(30) itab_show-tknum,
(30) itab_show-vbeln,
(30) itab_show-matnr,
(30) itab_show-lfimg.
menge = menge + itab_show-lfimg.
at end of tpbez .
write:(120) 'TOTAL:',
(30) menge.
menge = 0.
endat.
endloop.
endform. " GET_SYSTEM_MENGE