*&---------------------------------------------------------------------*
*& Report Z_PP_46
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report z_pp_11.
type-pools: slis.
include z_pp_11_inc1.
initialization.
at selection-screen.
perform input_check.
at selection-screen output.
loop at screen.
case screen-group1.
when 'SE1' or 'SE2' .
if r_week = 'X' and screen-group1 eq 'SE1'.
screen-active = '1'.
elseif r_month = 'X' and ( screen-group1 eq 'SE2' ).
screen-active = '1'.
else.
screen-active = '0'.
endif.
endcase.
modify screen.
endloop.
at selection-screen on value-request for p_versb.
perform search_help tables it_versb using '1'
'P_VERSB'
'VERSB'.
start-of-selection.
call function 'Z_IF_SYS_LOG_WRITE'
exporting
im_reportid = sy-repid
im_user = sy-uname
im_date = sy-datum
im_time = sy-uzeit.
create object lo_obj.
lo_obj->initial( ).
perform dny_field_creation.
perform dny_table_creation.
lo_obj->get_demand_fc( ).
lo_obj->extract_data( ).
lo_obj->prepare_base_data( ).
lo_obj->fill_data( ).
perform add_alv_fields.
if not <t_dyntable>[] is initial.
lo_obj->show_fullscrn_alv( ).
else.
message text-e01 type 'S' display like 'E'.
endif.
free lo_obj.
end-of-selection.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form get_data.
endform. "GET_DATA
*&---------------------------------------------------------------------*
*& Form DNY_FIELD_CREATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form dny_field_creation. "Step 1
data: l_rows type i,
i type i value 1,
n type i,
ls_col(2) type n,
le_col(2) type n,
l_count type i,
l_year(4) type n.
data: x_flag(1) type c.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'WERKS'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 10.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'BERID'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 10.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'IDNRK'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 18.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'MAKTX'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 40.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'MFRPN'. "MPN
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 30.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'PLIFZ'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 10.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'OPEN_PO'. "OPEN PO
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 15.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'RAW_STK'. "On-hand stock
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 15.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'MEINS'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 10.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'MATNR'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 18.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'MAKTX1'.
wa_it_fieldcat-datatype = 'CHAR'.
wa_it_fieldcat-intlen = 40.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'FG_STK'. "On-hand FG stock
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 15.
wa_it_fieldcat-qfieldname = 'LABST'.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'USAGE'. "BOM USAGE
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 15.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
"Create DM Fields
describe table it_condition lines l_rows.
while i <= l_rows.
read table it_condition into ga_it_condition index i.
if sy-subrc eq 0.
l_count = ga_it_condition-count.
ls_col = ga_it_condition-start_period.
le_col = ga_it_condition-end_period.
l_year = ga_it_condition-year.
while ls_col <= le_col.
clear wa_it_fieldcat.
move ls_col to wa_colno.
condense wa_colno.
concatenate 'DM_' l_year wa_colno g_period_flag into wa_flname.
wa_it_fieldcat-fieldname = wa_flname.
" wa_it_fieldcat-SCRTEXT_S = wa_flname.
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 10.
wa_it_fieldcat-decimals = 0.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
ls_col = ls_col + 1.
endwhile.
endif.
i = i + 1.
endwhile.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'DM_TOTAL'. "Total Demand
wa_it_fieldcat-datatype = 'NUMC'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 17.
wa_it_fieldcat-decimals = 0.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
"Create Shortage Fields
i = 1.
describe table it_condition lines l_rows.
while i <= l_rows.
read table it_condition into ga_it_condition index i.
if sy-subrc eq 0.
l_count = ga_it_condition-count.
ls_col = ga_it_condition-start_period.
le_col = ga_it_condition-end_period.
l_year = ga_it_condition-year.
while ls_col <= le_col.
clear wa_it_fieldcat.
move ls_col to wa_colno.
condense wa_colno.
concatenate 'ST_' l_year wa_colno g_period_flag into wa_flname.
wa_it_fieldcat-fieldname = wa_flname.
wa_it_fieldcat-datatype = 'N'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 10.
wa_it_fieldcat-decimals = 0.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
ls_col = ls_col + 1.
endwhile.
endif.
i = i + 1.
endwhile.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'ST_TOTAL'. "Total Shortage
wa_it_fieldcat-datatype = 'NUMC'.
wa_it_fieldcat-no_zero = 'X'.
wa_it_fieldcat-intlen = 17.
wa_it_fieldcat-decimals = 0.
wa_it_fieldcat-qfieldname = 'MEINS'.
append wa_it_fieldcat to l_fieldcat.
clear wa_it_fieldcat.
wa_it_fieldcat-fieldname = 'CELL_COLOR'.
* WA_IT_FIELDCAT-DATATYPE = 'lvc_t_scol'.
wa_it_fieldcat-ref_field = 'COLTAB'.
wa_it_fieldcat-ref_table = 'CALENDAR_TYPE'.
append wa_it_fieldcat to l_fieldcat.
endform. "Dny_Field_Creation
*&---------------------------------------------------------------------*
*& Form ADD_ALV_FIELDS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form add_alv_fields .
data: l_rows type i,
i type i value 1,
n type i,
ls_col(2) type n,
le_col(2) type n,
l_count type i,
l_year(4) type n,
l_wa_flname(12) type c,
l_wa_flname_text(20) type c.
data: x_flag type c.
ga_fieldcat-fieldname = 'WERKS'.
ga_fieldcat-seltext_l = 'PLANT'.
ga_fieldcat-seltext_S = 'PLANT'.
ga_fieldcat-intlen = 10.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'BERID'.
ga_fieldcat-seltext_l = 'BU'.
ga_fieldcat-seltext_S = 'BU'.
ga_fieldcat-intlen = 15.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'IDNRK'.
ga_fieldcat-seltext_l = 'Component'.
ga_fieldcat-seltext_S = 'COMPONENT'.
ga_fieldcat-intlen = 18.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'MAKTX'.
ga_fieldcat-seltext_l = 'Description'.
ga_fieldcat-seltext_S = 'DESCRIPTION'.
ga_fieldcat-intlen = 40.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'MFNRN'.
ga_fieldcat-seltext_l = 'MPN'.
ga_fieldcat-seltext_S = 'MPN'.
ga_fieldcat-intlen = 30.
ga_fieldcat-outputlen = '30'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'PLIFZ'.
ga_fieldcat-seltext_l = 'Lead Time'.
ga_fieldcat-seltext_S = 'Lead Time'.
ga_fieldcat-intlen = 10.
ga_fieldcat-outputlen = '10'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'OPEN_PO'.
ga_fieldcat-seltext_l = 'OPEN PO'.
ga_fieldcat-seltext_S = 'OPEN PO'.
ga_fieldcat-intlen = 15.
ga_fieldcat-outputlen = '15'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'RAW_STK'.
ga_fieldcat-seltext_l = 'On Hand STOCK'.
ga_fieldcat-seltext_S = 'On Hand STOCK'.
ga_fieldcat-intlen = 15.
ga_fieldcat-outputlen = '15'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'MEINS'.
ga_fieldcat-seltext_l = 'UOM'.
ga_fieldcat-seltext_S = 'UOM'.
ga_fieldcat-intlen = 3.
ga_fieldcat-outputlen = '10'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'MATNR'.
ga_fieldcat-seltext_l = 'FG P/N'.
ga_fieldcat-seltext_S = 'FG P/N'.
ga_fieldcat-intlen = 18.
ga_fieldcat-outputlen = '20'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'MAKTX1'.
ga_fieldcat-seltext_l = 'FG Description'.
ga_fieldcat-seltext_s = 'FG Description'.
ga_fieldcat-intlen = 40.
ga_fieldcat-outputlen = '40'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'FG_STK'.
ga_fieldcat-seltext_l = 'FG Stock'.
ga_fieldcat-seltext_S = 'FG Stock'.
ga_fieldcat-intlen = 15.
ga_fieldcat-outputlen = '15'.
append ga_fieldcat to gt_fieldcat.
ga_fieldcat-fieldname = 'USAGE'.
ga_fieldcat-seltext_l = 'BOM Usage'.
ga_fieldcat-seltext_S = 'BOM Usage'.
ga_fieldcat-intlen = 15.
ga_fieldcat-outputlen = '15'.
append ga_fieldcat to gt_fieldcat.
describe table it_condition lines l_rows.
while i <= l_rows.
read table it_condition into ga_it_condition index i.
if sy-subrc eq 0.
l_count = ga_it_condition-count.
ls_col = ga_it_condition-start_period.
le_col = ga_it_condition-end_period.
l_year = ga_it_condition-year.
while ls_col <= le_col.
clear wa_it_fieldcat.
move ls_col to wa_colno.
condense wa_colno.
concatenate 'DM_' l_year wa_colno g_period_flag into l_wa_flname.
* concatenate PERIOD_FLAG wa_colno '.' l_Year into L_wa_flname.
ga_fieldcat-fieldname = l_wa_flname.
ga_fieldcat-seltext_s = l_wa_flname.
ga_fieldcat-outputlen = '10'.
append ga_fieldcat to gt_fieldcat.
ls_col = ls_col + 1.
endwhile.
endif.
i = i + 1.
endwhile.
ga_fieldcat-fieldname = 'DM_TOTAL'.
ga_fieldcat-seltext_s = 'Total Demand '.
ga_fieldcat-seltext_l = 'Total Demand'.
ga_fieldcat-intlen = 17.
append ga_fieldcat to gt_fieldcat.
i = 1.
describe table it_condition lines l_rows.
while i <= l_rows.
read table it_condition into ga_it_condition index i.
if sy-subrc eq 0.
l_count = ga_it_condition-count.
ls_col = ga_it_condition-start_period.
le_col = ga_it_condition-end_period.
l_year = ga_it_condition-year.
while ls_col <= le_col.
clear wa_it_fieldcat.
move ls_col to wa_colno.
condense wa_colno.
concatenate 'ST_' l_year wa_colno g_period_flag into l_wa_flname.
" concatenate PERIOD_FLAG wa_colno '.' l_Year into L_wa_flname.
ga_fieldcat-fieldname = l_wa_flname.
ga_fieldcat-seltext_s = l_wa_flname.
ga_fieldcat-outputlen = '10'.
append ga_fieldcat to gt
Material Shortage Report - 缺料清单报表
最新推荐文章于 2024-09-06 22:20:29 发布