Escolar Documentos
Profissional Documentos
Cultura Documentos
*&---------------------------------------------------------------------*
*& Report ZFI_MATERIAL_AGE
*&---------------------------------------------------------------------*
*& Created By : Pampaniya Rakesh
*& Requested By :
*& Date
: 24.06.2013
*& TCode
: ZMC46
*& Description : Material Aging Report
*&---------------------------------------------------------------------*
report ZINVTRY_AGING.
*&---------------------------------------------------------------------*
*& Type-Pool Declaration
*&---------------------------------------------------------------------*
type-pools: slis.
*&---------------------------------------------------------------------*
*& ALV Data Declaration
*&---------------------------------------------------------------------*
data: it_fieldcat
type slis_t_fieldcat_alv.
data: wa_fieldcat
like line of it_fieldcat.
data: t_list_top_of_page type slis_t_listheader.
data: it_events
type slis_t_event with header line.
data: g_save
type c value 'A'.
data: gt_sort type slis_t_sortinfo_alv.
data: gx_save
type c value 'A'.
data: gx_variant
type disvariant.
data: g_variant
type disvariant.
data: gs_layout
type slis_layout_alv.
data: t_formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
data: t_i_event
type slis_alv_event.
*&---------------------------------------------------------------------*
*& External Table Declaration
*
*&---------------------------------------------------------------------*
tables : mchbh,mchb,mseg.
*&---------------------------------------------------------------------*
*& Internal Table Declaration
*
*&---------------------------------------------------------------------*
types : begin of ty_mchbh,
matnr type mchbh-matnr,
werks type mchbh-werks,
lgort type mchbh-lgort,
charg type mchbh-charg,
lfgja type mchbh-lfgja,
lfmon type mchbh-lfmon,
clabs type mchbh-clabs,
cumlm type mchbh-cumlm,
cinsm type mchbh-cinsm,
ceinm type mchbh-ceinm,
cspem type mchbh-cspem,
cretm type mchbh-cretm,
mtart type mara-mtart,
maktx type makt-maktx,
budat type mkpf-budat,
price type mbewh-verpr,
value type wtgxxx,
flag(1) type c,
end of ty_mchbh.
types : begin of ty_mchb,
matnr type mchbh-matnr,
werks type mchbh-werks,
lgort type mchbh-lgort,
charg type mchbh-charg,
lfgja type mchbh-lfgja,
lfmon type mchbh-lfmon,
clabs type mchbh-clabs,
cumlm type mchbh-cumlm,
cinsm type mchbh-cinsm,
ceinm type mchbh-ceinm,
cspem type mchbh-cspem,
cretm type mchbh-cretm,
end of ty_mchb.
types : begin of ty_matnr,
matnr type mara-matnr,
mtart type mara-mtart,
flag(1) type c,
end of ty_matnr.
perform alv_fieldcat.
perform get_events.
perform sub_comment_build using t_list_top_of_page.
perform alv_display.
else.
message 'No Data Found' type 'I'.
endif.
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
form get_data.
break 10115.
select matnr mtart
from mara
into corresponding fields of table it_matnr
where matnr in s_matnr.
* and mtart in ('ROH','VERP','ZERP','HALB','FERT','ZERT','HAWA').
if sy-subrc = 0.
sort it_matnr by matnr.
delete adjacent duplicates from it_matnr comparing matnr.
endif.
if it_matnr is not initial.
select matnr werks lgort charg lfgja
lfmon clabs cumlm cinsm ceinm
cspem cretm
from mchbh
into corresponding fields of table it_mchbh2
for all entries in it_matnr
where matnr = it_matnr-matnr
and werks in s_werks
and lgort in s_lgort.
endif.
sort it_mchbh2 by matnr werks lgort charg lfgja lfmon.
delete adjacent duplicates from it_mchbh2
comparing matnr werks lgort charg. "lfgja lfmon.
if s_charg[] is not initial.
delete it_mchbh2 where charg not in s_charg.
endif.
if it_matnr[] is not initial.
select matnr werks lgort charg lfgja
lfmon clabs cumlm cinsm ceinm
cspem cretm
from mchbh
into corresponding fields of table it_mchbh
for all entries in it_matnr
where matnr = it_matnr-matnr
wa_mchbh2-cumlm = 0.
wa_mchbh2-cspem = 0.
wa_mchbh2-ceinm = 0.
wa_mchbh2-cretm = 0.
modify it_mchbh2 from wa_mchbh2.
clear wa_mchbh2.
endloop.
endif.
*****
break 10115.
if it_mchbh2[] is not initial.
loop at it_mchbh2 into wa_mchbh2.
wa_month-matnr = wa_mchbh2-matnr.
wa_month-werks = wa_mchbh2-werks.
wa_month-lgort = wa_mchbh2-lgort.
wa_month-charg = wa_mchbh2-charg.
****For Min Month And Year
select single min( lfgja )
from mchbh
into wa_month-lfgja
where matnr = wa_month-matnr
and werks = wa_month-werks
and lgort = wa_month-lgort
and charg = wa_month-charg
and lfgja => spmon+0(4).
if wa_month-lfgja = spmon+0(4).
select single min( lfmon )
from mchbh
into wa_month-lfmon
where matnr = wa_month-matnr
and werks = wa_month-werks
and lgort = wa_month-lgort
and charg = wa_month-charg
and lfgja = wa_month-lfgja
and lfmon => spmon+4(2).
endif.
if wa_month-lfmon < spmon+4(2).
select single min( lfgja )
from mchbh
into wa_month-lfgja
where matnr = wa_month-matnr
and werks = wa_month-werks
and lgort = wa_month-lgort
and charg = wa_month-charg
on a~matnr = b~matnr
and a~charg = b~charg
where a~matnr = wa_mchbh-matnr
and a~charg = wa_mchbh-charg
and a~lvorm = space
and b~werks = wa_mchbh-werks.
elseif wa_mchbh-mtart = 'HALB' or
wa_mchbh-mtart = 'FERT' or
wa_mchbh-mtart = 'ZERT' or
wa_mchbh-mtart = 'HAWA'.
select single a~hsdat
into wa_mchbh-budat
from mch1 as a
inner join mcha as b
on a~matnr = b~matnr
and a~charg = b~charg
where a~matnr = wa_mchbh-matnr
and a~charg = wa_mchbh-charg
and a~lvorm = space
and b~werks = wa_mchbh-werks.
endif.
read table it_mbewh into wa_mbewh
with key matnr = wa_mchbh-matnr.
if sy-subrc = 0.
if wa_mchbh-mtart = 'ROH' or
wa_mchbh-mtart = 'VERP' or
wa_mchbh-mtart = 'ZERP'.
wa_mchbh-price = wa_mbewh-verpr.
wa_mchbh-value = ( wa_mchbh-clabs + wa_mchbh-cinsm +
wa_mchbh-cspem + wa_mchbh-ceinm +
wa_mchbh-cretm )
* wa_mchbh-price.
elseif wa_mchbh-mtart = 'HALB' or
wa_mchbh-mtart = 'FERT' or
wa_mchbh-mtart = 'ZERT' or
wa_mchbh-mtart = 'HAWA'..
wa_mchbh-price = wa_mbewh-stprs.
wa_mchbh-value = ( wa_mchbh-clabs + wa_mchbh-cinsm +
wa_mchbh-cspem + wa_mchbh-ceinm +
wa_mchbh-cretm )
* wa_mchbh-price.
endif.
endif.
modify it_mchbh from wa_mchbh.
clear wa_mchbh.
endloop.
*****
break abapdev2.
loop at it_mchbh into wa_mchbh where price eq 0.
****For Min Year For Price
if wa_mchbh-mtart = 'ROH' or
wa_mchbh-mtart = 'VERP' or
wa_mchbh-mtart = 'ZERP'.
*****
select single min( lfgja )
from mbewh
into wa_mchbh1-lfgja
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja => spmon+0(4)
and verpr ne 0.
elseif wa_mchbh-mtart = 'HALB' or
wa_mchbh-mtart = 'FERT' or
wa_mchbh-mtart = 'ZERT' or
wa_mchbh-mtart = 'HAWA'..
select single min( lfgja )
from mbewh
into wa_mchbh1-lfgja
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja => spmon+0(4)
and stprs ne 0.
endif.
****For Min Month For Price
if wa_mchbh-mtart = 'ROH' or
wa_mchbh-mtart = 'VERP' or
wa_mchbh-mtart = 'ZERP'.
if wa_mchbh1-lfgja = spmon+0(4).
select single min( lfmon )
from mbewh
into wa_mchbh1-lfmon
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja = wa_mchbh1-lfgja
and lfmon => spmon+4(2)
and verpr ne 0.
endif.
if wa_mchbh1-lfmon < spmon+4(2).
select single min( lfgja )
from mbewh
into wa_mchbh1-lfgja
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja > spmon+0(4)
and verpr ne 0.
endif.
if wa_mchbh1-lfgja > spmon+0(4).
select single min( lfmon )
from mbewh
into wa_mchbh1-lfmon
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja = wa_mchbh1-lfgja
and verpr ne 0.
endif.
elseif wa_mchbh-mtart = 'HALB' or
wa_mchbh-mtart = 'FERT' or
wa_mchbh-mtart = 'ZERT' or
wa_mchbh-mtart = 'HAWA'..
if wa_mchbh1-lfgja = spmon+0(4).
select single min( lfmon )
from mbewh
into wa_mchbh1-lfmon
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja = wa_mchbh1-lfgja
and lfmon => spmon+4(2)
and stprs ne 0.
endif.
if wa_mchbh1-lfmon < spmon+4(2).
select single min( lfgja )
from mbewh
into wa_mchbh1-lfgja
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
and lfgja > spmon+0(4)
and stprs ne 0.
endif.
if wa_mchbh1-lfgja > spmon+0(4).
select single min( lfmon )
from mbewh
into wa_mchbh1-lfmon
where matnr = wa_mchbh-matnr
and bwkey = wa_mchbh-werks
wa_mchbh-value.
endif.
if wa_mchbh-budat between wd271 and wd365.
wa_final-day_271_365 = wa_final-day_271_365 +
wa_mchbh-value.
endif.
if wa_mchbh-budat < wd271.
wa_final-day_m_365 = wa_final-day_m_365 +
wa_mchbh-value.
endif.
if wa_mchbh-budat > wd30.
wa_final-nodue = wa_final-nodue +
wa_mchbh-value.
endif.
elseif r2 = 'X'.
if wa_mchbh-budat between wd0 and wd30.
wa_final-day_0_30 = wa_final-day_0_30 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd31 and wd60.
wa_final-day_31_60 = wa_final-day_31_60 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd61 and wd90.
wa_final-day_61_90 = wa_final-day_61_90 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd91 and wd120.
wa_final-day_91_120 = wa_final-day_91_120 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd121 and wd180.
wa_final-day_121_180 = wa_final-day_121_180 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd181 and wd270.
wa_final-day_181_270 = wa_final-day_181_270 +
wa_final-clabs.
endif.
if wa_mchbh-budat between wd271 and wd365.
wa_final-day_271_365 = wa_final-day_271_365 +
wa_final-clabs.
endif.
if wa_mchbh-budat < wd271.
wa_final-day_m_365 = wa_final-day_m_365 +
wa_final-clabs.
endif.
if wa_mchbh-budat > wd30.
wa_final-nodue = wa_final-nodue +
wa_final-clabs.
endif.
endif.
append wa_final to it_final.
clear : wa_final.
endloop.
loop at it_final into wa_final.
read table it_mchbh into wa_mchbh
with key matnr = wa_final-matnr
werks = wa_final-werks
lgort = wa_final-lgort
charg = wa_final-charg.
if sy-subrc = 0.
wa_final-maktx = wa_mchbh-maktx.
wa_final-mtart = wa_mchbh-mtart.
wa_final-price = wa_mchbh-price.
wa_final-budat = wa_mchbh-budat.
endif.
select single meins
from mara
into wa_final-meins
where matnr = wa_final-matnr.
wa_final-total = wa_final-day_0_30 + wa_final-day_31_60 +
wa_final-day_61_90 + wa_final-day_91_120 +
wa_final-day_121_180 + wa_final-day_181_270
+ wa_final-day_271_365 + wa_final-day_m_365
+ wa_final-nodue.
modify it_final from wa_final.
clear wa_final.
endloop.
delete adjacent duplicates from it_final
comparing matnr werks lgort charg.
delete it_final where clabs is initial.
endform.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form ALV_FIELDCAT
*&---------------------------------------------------------------------*
form alv_fieldcat .
data: counter type i.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Material'.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-outputlen = '20'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'UOM'.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-outputlen = '20'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Material Desc.'.
wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'MTART'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Material Type'.
wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Plant'.
wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'LGORT'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Storage Loc.'.
wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'CHARG'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Batch'.
* wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'BUDAT'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Date Of Mfg.'.
* wa_fieldcat-no_zero = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'CLABS'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Quantity'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'PRICE'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Price'.
wa_fieldcat-no_zero = 'X'.
* wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'NODUE'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Not Due'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_0_30'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '00 - 30 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_31_60'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '31 - 60 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_61_90'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '61 - 90 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_91_120'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '91 - 120 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_121_180'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '121 - 180 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_181_270'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '181 - 270 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_271_365'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = '271 - 365 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'DAY_M_365'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'More then 365 Days'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-seltext_l = 'Total'.
* wa_fieldcat-no_zero = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
endform.
" ALV_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form GET_EVENTS
*&---------------------------------------------------------------------*
form get_events .
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events
= it_events[]
exceptions
list_type_wrong = 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.
read table it_events with key name = slis_ev_top_of_page
into it_events.
if sy-subrc = 0.
move t_formname_top_of_page to it_events-form.
append it_events.
endif.
endform.
" GET_EVENTS
*&---------------------------------------------------------------------*
*&
Form SUB_COMMENT_BUILD
*&---------------------------------------------------------------------*
form sub_comment_build using i_top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.
data: wrk_name type string.
data: spmon2 type string.
wrk_name = v_name2. "'Claris Lifesciences Ltd.'.
concatenate spmon+4(2) '.' spmon+0(4) into spmon2.
clear ls_line.
ls_line-typ = 'H'.
ls_line-info = wrk_name.
append ls_line to i_top_of_page.
ls_line-typ = 'H'.
ls_line-info = 'Material Ageing Report'.
append ls_line to i_top_of_page.
ls_line-typ = 'S'.
ls_line-key = 'Ageing For :-'.
ls_line-info = spmon2.
append ls_line to i_top_of_page.
endform.
" SUB_COMMENT_BUILD
*&---------------------------------------------------------------------*
*&
Form top_of_page
*&---------------------------------------------------------------------*
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_list_top_of_page.
endform.
"top_of_page
*&---------------------------------------------------------------------*
*&
Form ALV_DISPLAY
*&---------------------------------------------------------------------*
form alv_display .
gs_layout-zebra
= 'X'.
gs_layout-detail_popup
= 'X'.
gs_layout-detail_initial_lines = 'X'.
* gs_layout-colwidth_optimize = 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
it_fieldcat
= it_fieldcat
it_events
= it_events[]
i_callback_program = sy-repid
is_layout
= gs_layout
it_sort
= gt_sort[]
i_save
= g_save
is_variant
= gx_variant
*
i_callback_pf_status_set = 'ZSTANDARD'
*
i_callback_user_command = 'USER_COMMAND'
tables
t_outtab
= it_final[].
.
endform.
" ALV_DISPLAY
*&---------------------------------------------------------------------*
*&
Form GET_P_DATE
*&---------------------------------------------------------------------*
form get_p_date .
if spmon is not initial.
clear : p_date,p_date1,month,year.
month = spmon+4(2).
year = spmon+0(4).
call function 'NUMBER_OF_DAYS_PER_MONTH_GET'
exporting
par_month = month
par_year = year
importing
par_days = days.
if days is not initial.
concatenate days '.' spmon+4(2) '.' spmon+0(4) into p_date1.
concatenate spmon+0(4) spmon+4(2) days into p_date.
*
p_date = p_date1.
endif.
endif.
endform.
" GET_P_DATE
*&---------------------------------------------------------------------*
*&
Form DATE_SETING
*&---------------------------------------------------------------------*
form date_seting .
clear:wd0,wd30,wd31,wd60,wd61,wd90,wd91,wd120,
wd121,wd180,wd181,wd270,wd271,wd365,wd15.
****
* 0 - 30 DAYS
wd30 = p_date.
data:wa_duration like psen_duration_dec,
w_date type endda.
clear:wa_duration,w_date.
wa_duration-caldd = '30'.
perform date_duration using wa_duration
changing w_date.
wd0 = w_date.
****
* 31 - 60 DAYS
*wd31 = wd30 - 60.
*wd60 = wd30 - 31.
clear:wa_duration,w_date.
wa_duration-caldd = '60'.
perform date_duration using wa_duration
changing w_date.
wd31 = w_date.
clear:wa_duration,w_date.
wa_duration-caldd = '31'.
perform date_duration using wa_duration
changing w_date.
wd60 = w_date.
****
* 61 - 90 DAYS
*wd61 = wd30 - 90.
*wd90 = wd30 - 61.
clear:wa_duration,w_date.
wa_duration-caldd = '90'.
perform date_duration using wa_duration
changing w_date.
wd61 = w_date.
clear:wa_duration,w_date.
wa_duration-caldd = '61'.
perform date_duration using wa_duration
changing w_date.
wd90 = w_date.
****
* 91 - 120 DAYS
*wd91 = wd30 - 120.
*wd120 = wd30 - 91.
clear:wa_duration,w_date.
wa_duration-caldd = '120'.
perform date_duration using wa_duration
changing w_date.
wd91 = w_date.
clear:wa_duration,w_date.
wa_duration-caldd = '91'.
perform date_duration using wa_duration
changing w_date.
wd120 = w_date.
****
* 121 - 180 DAYS
*wd121 = wd30 - 180.
*wd180 = wd30 - 121.
clear:wa_duration,w_date.
wa_duration-caldd = '180'.
perform date_duration using wa_duration
changing w_date.
wd121 = w_date.
clear:wa_duration,w_date.
wa_duration-caldd = '121'.
perform date_duration using wa_duration
changing w_date.
wd180 = w_date.
****
* 181 - 270 DAYS
*wd270 = wd30 - 181.
*wd181 = wd30 - 270.
clear:wa_duration,w_date.
wa_duration-caldd = '181'.
others
= 3.
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.
" DATE_DURATION
*&---------------------------------------------------------------------*
*&
Form GET_COM_DTL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form get_com_dtl .
select single name2 from t001w into v_name2 where werks = s_werks-low.
endform.
" GET_COM_DTL