为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

存货账龄分析明细表

2019-03-27 45页 doc 91KB 7阅读

用户头像

is_792768

暂无简介

举报
存货账龄分析明细表****************************************************************** * PROGRAM SOURCE HEADER ****************************************************************** *Program Name: ZHTFI_R019 *Description: 存货账龄分析明细表 *Date/Author: 2012.06.27/许林锋 *Table Update: *Special...
存货账龄分析明细表
****************************************************************** * PROGRAM SOURCE HEADER ****************************************************************** *Program Name: ZHTFI_R019 *Description: 存货账龄分析明细表 *Date/Author: 2012.06.27/许林锋 *Table Update: *Special Logic: *Include: ****************************************************************** * MODIFICATION LOG ****************************************************************** *ChangeDate *Programer *Request *Desctiption *----------------------------------------------------------------- *2007.06.27 *许林锋 *DEVK900358 *New Program *2007.06.28 *许林锋 *DEVK900358 *Change *2007.06.29 *许林锋 *DEVK900358 *Change *2007.07.02 *许林锋 *DEVK900358 *Change *2007.07.03 *许林锋 *DEVK900358 *Change *2007.07.04 *许林锋 *DEVK900358 *Change *2007.07.05 *许林锋 *DEVK900358 *Change * ****************************************************************** *----------------------------------------------------------------- *Program Name *----------------------------------------------------------------- report zhtfi_r019. tables: t001, t001w, t001l, mara, mbew. *Data *----------------------------------------------------------------- *ALV type-pools: slis. data: i_fieldcat_alv type slis_t_fieldcat_alv with header line, i_layout type slis_layout_alv, "alv的 w_fieldcat type slis_fieldcat_alv, "alv列属性 w_repid like sy-repid. "当前程序 data: d_pos type i value 0. "ranges ranges: r_bwkey for t001k-bwkey, "评估范围 r_bukrs for t001k-bukrs, "公司代码 r_werks for t001w-werks. "工厂 data: begin of it_data occurs 0, bukrs like t001-bukrs, "公司 mjahr like mkpf-mjahr, "年度 rpmax(2) type c, "期间 matnr like mseg-matnr, "物料 maktx like makt-maktx, "物料描述 mtart like mara-mtart, "物料类型 matkl like mara-matkl, "物料组 werks like mseg-werks, "工厂 lgort like mseg-lgort, "库位 menge_e like mseg-menge, "期末数量 dmbtr_e like mseg-dmbtr, "期末金额 menge_1 like mseg-menge, "1-3月数量 dmbtr_1 like mseg-dmbtr, "1-3月金额 menge_2 like mseg-menge, "4-6月数量 dmbtr_2 like mseg-dmbtr, "4-6月金额 menge_3 like mseg-menge, "7-9月数量 dmbtr_3 like mseg-dmbtr, "7-9月金额 menge_4 like mseg-menge, "10-12月数量 dmbtr_4 like mseg-dmbtr, "10-12月金额 menge_5 like mseg-menge, "1-2年数量 dmbtr_5 like mseg-dmbtr, "1-2年金额 menge_6 like mseg-menge, "2-3年数量 dmbtr_6 like mseg-dmbtr, "2-3年金额 menge_7 like mseg-menge, "3年以上数量 dmbtr_7 like mseg-dmbtr, "3年以上金额 end of it_data. data: begin of it_werks occurs 0, bwkey like t001k-bwkey, "评估范围 bukrs like t001k-bukrs, "公司代码 werks like t001w-werks, "工厂 end of it_werks, it_werks_b like table of it_werks with header line. data: begin of it_matnr occurs 0, matnr like mara-matnr, "物料号码 mtart like mara-mtart, "物料类型 matkl like mara-matkl, "物料组 maktx like makt-maktx, "物料描述 end of it_matnr. data: begin of it_mseg occurs 0, mblnr like mkpf-mblnr, "物料凭证 mjahr like mkpf-mjahr, "年度 budat like mkpf-budat, "过账日期 zeile like mseg-zeile, "项目 matnr like mseg-matnr, "物料 werks like mseg-werks, "工厂 lgort like mseg-lgort, "库位 shkzg like mseg-shkzg, "借/贷 dmbtr like mseg-dmbtr, "本位币金额 menge like mseg-menge, "数量 end of it_mseg. data: begin of it_bsim occurs 0, bukrs like bkpf-bukrs, "公司代码 belnr like bkpf-belnr, "会计凭证 gjahr like bkpf-gjahr, "会计年度 budat like bkpf-budat, "过账日期 buzei like bsim-buzei, "项目 matnr like bsim-matnr, "物料 shkzg like bsim-shkzg, "借/贷 dmbtr like bsim-dmbtr, "本位币金额 end of it_bsim. data: begin of it_lgort occurs 0, bukrs like t001-bukrs, "公司 werks like mseg-werks, "工厂 lgort like mseg-lgort, "库位 end of it_lgort. data: begin of it_bukrs occurs 0, bukrs like t001-bukrs, "公司代码 end of it_bukrs. data: begin of it_perpr occurs 0, matnr like mara-matnr, "物料 bukrs like t001-bukrs, "公司代码 perpr like mseg-dmbtr, "单价 end of it_perpr. data: p_budat_low_f like mkpf-budat, "查询期间的第一天 p_budat_high_f like mkpf-budat, "查询期间的最后一天 "各个期间的开始结束日 p_budat_low_1 like mkpf-budat, p_budat_high_1 like mkpf-budat, p_budat_low_2 like mkpf-budat, p_budat_high_2 like mkpf-budat, p_budat_low_3 like mkpf-budat, p_budat_high_3 like mkpf-budat, p_budat_low_4 like mkpf-budat, p_budat_high_4 like mkpf-budat, p_budat_low_5 like mkpf-budat, p_budat_high_5 like mkpf-budat, p_budat_low_6 like mkpf-budat, p_budat_high_6 like mkpf-budat, p_budat_low_7 like mkpf-budat, p_budat_high_7 like mkpf-budat, p_budat_low like mkpf-budat, "期间的第一天 p_budat_high like mkpf-budat. "期间的最后一天 data: d_menge_i_1 like mseg-menge," d_dmbtr_i_1 like mseg-dmbtr, d_menge_i_2 like mseg-menge," d_dmbtr_i_2 like mseg-dmbtr, d_menge_i_3 like mseg-menge," d_dmbtr_i_3 like mseg-dmbtr, d_menge_i_4 like mseg-menge," d_dmbtr_i_4 like mseg-dmbtr, d_menge_i_5 like mseg-menge," d_dmbtr_i_5 like mseg-dmbtr, d_menge_i_6 like mseg-menge," d_dmbtr_i_6 like mseg-dmbtr, d_menge_i_7 like mseg-menge," d_dmbtr_i_7 like mseg-dmbtr, d_menge_i_e like mseg-menge, d_dmbtr_i_e like mseg-dmbtr, d_menge_i_e_sum like mseg-menge, d_dmbtr_i_e_sum like mseg-dmbtr, * d_perpr like mseg-dmbtr. "单价 d_perpr type f. data: d_menge_i like mseg-menge, d_dmbtr_i like mseg-dmbtr, d_menge_i_sub like mseg-menge, d_dmbtr_i_sub like mseg-dmbtr. data d_str type string. *Selection Screen *----------------------------------------------------------------- selection-screen begin of block blk_1 with frame title text-blk. select-options: s_bukrs for t001-bukrs obligatory, "公司 s_werks for t001w-werks, "工厂 s_lgort for t001l-lgort. "库位selection-screen skip. select-options: s_matnr for mara-matnr, "物料 s_mtart for mara-mtart, "物料类型 s_matkl for mara-matkl. "物料组select-options: s_bklas for mbew-bklas. "估价类selection-screen skip. parameter: p_mjahr like mkpf-mjahr obligatory, "年度 p_rpmax(2) type c obligatory. "期间selection-screen end of block blk_1. *Define *----------------------------------------------------------------- define move_sub. d_menge_i = d_menge_i_sub. clear d_menge_i_sub. * d_dmbtr_i = d_dmbtr_i_sub. clear d_dmbtr_i_sub. end-of-definition. define sub_m_d. d_menge_i_sub = d_menge_i - &1. * d_dmbtr_i_sub = d_dmbtr_i - &2. end-of-definition. define move_m_d. &1 = d_menge_i. * &2 = d_dmbtr_i. end-of-definition. define write_screen. call function 'SAP GUI_PROGRESS_INDICATOR' exporting text = &1. end-of-definition. *Initialization *----------------------------------------------------------------- initialization. perform sub_initialization. *At Selection Screen *----------------------------------------------------------------- at selection-screen. perform func_check_authority. *Start of selection *----------------------------------------------------------------- start-of-selection. perform sub_get_data. *End Selection. *----------------------------------------------------------------- end-of-selection. if it_data[] is initial. "写屏幕 d_str = text-s04. write_screen d_str. else. "写屏幕 d_str = text-s03. write_screen d_str. perform sub_build_layout. perform sub_build_fields. perform sub_dis_data. endif. *&---------------------------------------------------------------------* *& Form sub_get_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form sub_get_data . *---取数 "写屏幕 d_str = text-s01. write_screen d_str. "取当前期间的第一天和第二天 concatenate p_mjahr p_rpmax '01' into p_budat_low_f. call function 'RP_LAST_DAY_OF_MONTHS' exporting day_in = p_budat_low_f importing last_day_of_month = p_budat_high_f exceptions day_in_no_date = 1 others = 2. "取得选择下的所有公司代码、评估范围、工厂 select a~bwkey a~bukrs b~werks into table it_werks from t001k as a join t001w as b on a~bwkey = b~bwkey where a~bukrs in s_bukrs and b~werks in s_werks . if not it_werks[] is initial. loop at it_werks. clear: r_bukrs, r_bwkey, r_werks, it_bukrs. "所有公司代码 it_bukrs-bukrs = it_werks-bukrs. collect it_bukrs. r_bukrs-sign = 'I'. r_bukrs-option = 'EQ'. r_bukrs-low = it_werks-bukrs. append r_bukrs. r_bwkey-sign = 'I'. r_bwkey-option = 'EQ'. r_bwkey-low = it_werks-bwkey. append r_bwkey. r_werks-sign = 'I'. r_werks-option = 'EQ'. r_werks-low = it_werks-werks. append r_werks. clear it_werks. endloop. else. clear: r_bukrs, r_bwkey, r_werks. r_bukrs-sign = 'I'. r_bukrs-option = 'EQ'. r_bukrs-low = 'XXXX'. append r_bukrs. r_bwkey-sign = 'I'. r_bwkey-option = 'EQ'. r_bwkey-low = 'XXXX'. append r_bwkey. r_werks-sign = 'I'. r_werks-option = 'EQ'. r_werks-low = 'XXXX'. append r_werks. endif. sort: r_bukrs by low, r_bwkey by low, r_werks by low. delete adjacent duplicates from: r_bukrs, r_bwkey, r_werks. "取得所有公司代码下的工厂 select a~bwkey a~bukrs b~werks into table it_werks_b from t001k as a join t001w as b on a~bwkey = b~bwkey where a~bukrs in s_bukrs . "取得物料号码、物料类型、物料组、物料描述 select a~matnr a~mtart a~matkl b~maktx into table it_matnr from mara as a join makt as b on a~matnr = b~matnr join mbew as c on a~matnr = c~matnr where a~matnr in s_matnr and a~mtart in s_mtart and a~matkl in s_matkl and a~lvorm = '' " 为空表示未被删除物料。 and b~spras = '1' and c~bklas in s_bklas and c~lvorm = '' . sort it_matnr by matnr. delete adjacent duplicates from it_matnr. "取得所有工厂、库位 select distinct werks lgort into corresponding fields of table it_lgort from t001l where werks in r_werks and lgort in s_lgort . loop at it_lgort. read table it_werks with key werks = it_lgort-werks. it_lgort-bukrs = it_werks-bukrs. modify it_lgort. endloop. if not it_matnr[] is initial. "取MSEG表数据 select a~mblnr a~mjahr a~budat b~zeile b~matnr b~werks b~lgort b~shkzg b~dmbtr b~menge into corresponding fields of table it_mseg from mkpf as a join mseg as b on a~mblnr = b~mblnr and a~mjahr = b~mjahr for all entries in it_matnr where a~mjahr le p_mjahr and a~budat le p_budat_high_f and b~matnr = it_matnr-matnr and b~werks in r_werks and b~lgort in s_lgort . delete it_mseg where matnr is initial. "取BSIM表数据 select a~bukrs a~belnr a~gjahr a~budat b~buzei b~matnr b~shkzg b~dmbtr into corresponding fields of table it_bsim from bkpf as a join bsim as b on a~belnr = b~belnr and a~gjahr = b~gjahr and a~blart = b~blart and a~budat = b~budat for all entries in it_matnr where a~bukrs in r_bukrs and a~gjahr le p_mjahr and a~budat le p_budat_high_f and ( a~blart eq 'RE' or a~blart eq 'PR' ) and b~matnr eq it_matnr-matnr and b~bwkey in r_bwkey . if not it_mseg[] is initial. "计算各期间的开始日期和结束日期 p_budat_high_1 = p_budat_high_f. perform func_get_date_before_3_month changing p_budat_low_1 p_budat_high_1. p_budat_high_2 = p_budat_low_1 - 1. perform func_get_date_before_3_month changing p_budat_low_2 p_budat_high_2. p_budat_high_3 = p_budat_low_2 - 1. perform func_get_date_before_3_month changing p_budat_low_3 p_budat_high_3. p_budat_high_4 = p_budat_low_3 - 1. perform func_get_date_before_3_month changing p_budat_low_4 p_budat_high_4. p_budat_high_5 = p_budat_low_4. perform func_get_date_before_1_year changing p_budat_low_5 p_budat_high_5. p_budat_high_6 = p_budat_low_5. perform func_get_date_before_1_year changing p_budat_low_6 p_budat_high_6. p_budat_high_7 = p_budat_low_6 - 1. p_budat_low_7 = '00010101'. *---分期间累计数量、金额 "写屏幕 d_str = text-s02. write_screen d_str. loop at it_matnr. loop at it_bukrs. clear: d_menge_i_e_sum, d_dmbtr_i_e_sum, d_perpr. "计算该公司内,选择的工厂+库位条件下的出入库数量 loop at it_lgort where bukrs = it_bukrs-bukrs. clear: d_menge_i_1, d_menge_i_2, d_menge_i_3, d_menge_i_4, d_menge_i_5, d_menge_i_6, d_menge_i_7, d_menge_i_e, d_dmbtr_i_e, it_data. "--计算1-3月账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_1 p_budat_high_1 changing d_menge_i_1. "--计算4-6月账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_2 p_budat_high_2 changing d_menge_i_2. "--计算7-9月账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_3 p_budat_high_3 changing d_menge_i_3. "--计算10-12月账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_4 p_budat_high_4 changing d_menge_i_4. "--计算1-2年账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_5 p_budat_high_5 changing d_menge_i_5. "--计算12-3年账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_6 p_budat_high_6 changing d_menge_i_6. "--计算3年以上账龄物料的数据(入库数量、金额) perform func_comp_data using p_budat_low_7 p_budat_high_7 changing d_menge_i_7. "--添加到it_data中 "如果期末数量、金额为0,则不添加 if d_menge_i_e ne 0. clear it_data. it_data-bukrs = it_bukrs-bukrs. "公司代码 it_data-mjahr = p_mjahr. "年度 it_data-rpmax = p_rpmax. "期间 move-corresponding: it_matnr to it_data, it_lgort to it_data. it_data-menge_e = d_menge_i_e. "--根据期末库存+ 各期间入库数,判断各期间的库存数+ 金额 clear: d_menge_i. d_menge_i = d_menge_i_e - d_menge_i_1. "数量 "--根据数量判断 if d_menge_i <= 0. "1-3月 it_data-menge_1 = d_menge_i_e. else. it_data-menge_1 = d_menge_i_1. sub_m_d d_menge_i_2. if d_menge_i_sub <= 0. "4-6月 move_m_d it_data-menge_2. else. it_data-menge_2 = d_menge_i_2. move_sub. sub_m_d d_menge_i_3. if d_menge_i_sub <= 0. "7-9月 move_m_d it_data-menge_3. else. it_data-menge_3 = d_menge_i_3. move_sub. sub_m_d d_menge_i_4. if d_menge_i_sub <= 0. "10-12月 move_m_d it_data-menge_4. else. it_data-menge_4 = d_menge_i_4. move_sub. sub_m_d d_menge_i_5. if d_menge_i_sub <= 0. "1-2年 move_m_d it_data-menge_5. else. it_data-menge_5 = d_menge_i_5. move_sub. sub_m_d d_menge_i_6. if d_menge_i_sub <= 0. "2-3月 move_m_d it_data-menge_6. else. "3年以上 it_data-menge_6 = d_menge_i_6. it_data-menge_7 = d_menge_i_sub. endif. endif. endif. endif. endif. endif. append it_data. endif. "用于计算单价 d_menge_i_e_sum = d_menge_i_e + d_menge_i_e_sum. d_dmbtr_i_e_sum = d_dmbtr_i_e + d_dmbtr_i_e_sum. clear it_lgort. endloop. "---计算物料单价 "计算该公司内,选择的工厂+库位条件之外的出入库数量 loop at it_werks_b. loop at it_mseg where matnr = it_matnr-matnr and werks = it_werks_b-werks . case it_mseg-shkzg. when 'S'. "入库 "期末数量、金额 d_menge_i_e_sum = d_menge_i_e_sum + it_mseg-menge. d_dmbtr_i_e_sum = d_dmbtr_i_e_sum + it_mseg-dmbtr. when 'H'. "出库 "期末数量、金额 d_menge_i_e_sum = d_menge_i_e_sum - it_mseg-menge. d_dmbtr_i_e_sum = d_dmbtr_i_e_sum - it_mseg-dmbtr. endcase. clear it_mseg. endloop. clear it_werks_b. endloop. "计算发票校验和价格调整 loop at it_bsim where matnr = it_matnr-matnr and bukrs = it_bukrs-bukrs. case it_bsim-shkzg. when 'S'. "入库 "期末金额 d_dmbtr_i_e_sum = d_dmbtr_i_e_sum + it_bsim-dmbtr. when 'H'. "出库 "期末金额 d_dmbtr_i_e_sum = d_dmbtr_i_e_sum - it_bsim-dmbtr. endcase. clear it_bsim. endloop. "计算单价 if d_menge_i_e_sum ne 0. d_perpr = d_dmbtr_i_e_sum / d_menge_i_e_sum. clear it_perpr. it_perpr-matnr = it_matnr-matnr. it_perpr-bukrs = it_bukrs-bukrs. it_perpr-perpr = d_perpr. append it_perpr. endif. clear it_bukrs. endloop. clear it_matnr. endloop. sort it_data by matnr bukrs. "计算金额 loop at it_data. read table it_perpr with key matnr = it_data-matnr bukrs = it_data-bukrs. it_data-dmbtr_e = it_data-menge_e * it_perpr-perpr. it_data-dmbtr_1 = it_data-menge_1 * it_perpr-perpr. it_data-dmbtr_2 = it_data-menge_2 * it_perpr-perpr. it_data-dmbtr_3 = it_data-menge_3 * it_perpr-perpr. it_data-dmbtr_4 = it_data-menge_4 * it_perpr-perpr. it_data-dmbtr_5 = it_data-menge_5 * it_perpr-perpr. it_data-dmbtr_6 = it_data-menge_6 * it_perpr-perpr. it_data-dmbtr_7 = it_data-menge_7 * it_perpr-perpr. modify it_data. clear it_data. endloop. endif. endif. endform. " sub_get_data *&---------------------------------------------------------------------* *& Form sub_build_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form sub_build_layout . w_repid = sy-repid. "程序为当前程序 i_layout-zebra = 'X'. "斑马线 i_layout-detail_popup = 'X'. "是否弹出详细信息窗口 i_layout-f2code = '&ETA'. "设置触发弹出详细信息窗口的功能码,这里是双击 i_layout-no_vline = ' '. "这个用来设置列间隔线 i_layout-colwidth_optimize = 'X'. "优化列宽选项是否设置 i_layout-detail_initial_lines = 'X'. i_layout-detail_titlebar = '详细内容'. "设置弹出窗口的标题栏 endform. " sub_build_layout *&---------------------------------------------------------------------* *& Form sub_build_fields *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form sub_build_fields . refresh i_fieldcat_alv. perform sub_set_field using 'MJA HR' text-h01. perform sub_set_field using 'RPMAX' text-h02. perform sub_set_field using 'MATNR' text-h03. perform sub_set_field using 'MAKTX' text-h04. perform sub_set_field using 'MTART' text-h05. perform sub_set_field using 'MATKL' text-h06. perform sub_set_field using 'WERKS' text-h07. perform sub_set_field using 'LGORT' text-h08. perform sub_set_field using 'MENGE_E' text-h09. perform sub_set_field using 'DMBTR_E' text-h10. perform sub_set_field using 'MENGE_1' text-h11. perform sub_set_field using 'DMBTR_1' text-h12. perform sub_set_field using 'MENGE_2' text-h13. perform sub_set_field using 'DMBTR_2' text-h14. perform sub_set_field using 'MENGE_3' text-h15. perform sub_set_field using 'DMBTR_3' text-h16. perform sub_set_field using 'MENGE_4' text-h17. perform sub_set_field using 'DMBTR_4' text-h18. perform sub_set_field using 'MENGE_5' text-h19. perform sub_set_field using 'DMBTR_5' text-h20. perform sub_set_field using 'MENGE_6' text-h21. perform sub_set_field using 'DMBTR_6' text-h22. perform sub_set_field using 'MENGE_7' text-h23. perform sub_set_field using 'DMBTR_7' text-h24. endform. " sub_build_fields *&---------------------------------------------------------------------* *& Form sub_dis_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form sub_dis_data . call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = w_repid "当前程序 i_save = 'A' is_layout = i_layout "子函数layout_build填充的格式定义 it_fieldcat = i_fieldcat_alv[] "子函数fields填充的各列 tables t_outtab = it_data "数据都在IT_DATA内表中 exceptions program_error = 1 others = 2. endform. " sub_dis_data *&---------------------------------------------------------------------* *& Form sub_set_field *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_name text * -->P_TEXT text *----------------------------------------------------------------------* form sub_set_field using value(name) p_text. d_pos = d_pos + 1. clear w_fieldcat. w_fieldcat-col_pos = d_pos. w_fieldcat-fieldname = name. w_fieldcat-seltext_l = p_text. append w_fieldcat to i_fieldcat_alv. endform. " sub_set_field *&---------------------------------------------------------------------* *& Form func_get_date_before_3_month *&---------------------------------------------------------------------* * 3个月期间 *----------------------------------------------------------------------* * <--D_BUDAT_LOW text * <--D_BUDAT_HIGH text *----------------------------------------------------------------------* form func_get_date_before_3_month changing d_budat_low d_budat_high. data: d_year(4) type c value 0, d_month(2) type c value 0, d_year_i type i value 0, d_month_i type i value 0. d_year = d_budat_high(4). d_month = d_budat_high+4(2). move: d_month to d_month_i, d_year to d_year_i. d_month_i = d_month_i - 2. "判断是否为上年 if d_month_i <= 0. d_month_i = d_month_i + 12. d_year_i = d_year_i - 1. endif. "取期间开始 move: d_year_i to d_year, d_month_i to d_month. if d_month_i < 10. concatenate d_year '0' d_month '01' into d_budat_low. else. concatenate d_year d_month '01' into d_budat_low. endif. endform. " func_get_date_before_3_month *&---------------------------------------------------------------------* *& Form func_get_date_before_1_year *&---------------------------------------------------------------------* * 1年期间 *----------------------------------------------------------------------* * <--D_BUDAT_LOW text * <--D_BUDAT_HIGH text *----------------------------------------------------------------------* form func_get_date_before_1_year changing d_budat_low d_budat_high. data: d_year(4) type c value 0, d_month(2) type c value 0, d_year_i type i value 0. d_year = d_budat_high(4). d_month = d_budat_high+4(2). move: d_year to d_year_i. d_year_i = d_year_i - 1. move d_year_i to d_year. concatenate d_year d_month '01' into d_budat_low. d_budat_high = d_budat_high - 1. endform. " func_get_date_before_1_year *&---------------------------------------------------------------------* *& Form func_comp_data *&---------------------------------------------------------------------* * 累计期间内入库数量、金额;并累计多有出入库为这个期末数量、金额*----------------------------------------------------------------------* * <--D_MENGE_I text * <--D_DMBTR_I text *----------------------------------------------------------------------* form func_comp_data using d_budat_low d_budat_high changing d_menge_i. loop at it_mseg where matnr = it_matnr-matnr and werks = it_lgort-werks and lgort = it_lgort-lgort and budat >= d_budat_low and budat <= d_budat_high . case it_mseg-shkzg. when 'S'. "入库 "期间入库数量、金额 d_menge_i = d_menge_i + it_mseg-menge. * d_dmbtr_i = d_dmbtr_i + it_mseg-dmbtr. "期末数量、金额 d_menge_i_e = d_menge_i_e + it_mseg-menge. d_dmbtr_i_e = d_dmbtr_i_e + it_mseg-dmbtr. when 'H'. "出库 "期末数量、金额 d_menge_i_e = d_menge_i_e - it_mseg-menge. d_dmbtr_i_e = d_dmbtr_i_e - it_mseg-dmbtr. endcase. delete it_mseg. clear it_mseg. endloop. endform. " func_comp_data *&---------------------------------------------------------------------* *& Form sub_initialization *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form sub_initialization . data d_datum like mkpf-budat. d_datum = sy-datum. p_mjahr = d_datum(4). p_rpmax = d_datum+4(2). endform. " sub_initialization *&---------------------------------------------------------------------* *& Form func_check_authority *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form func_check_authority . data: begin of it_bukrs occurs 0, bukrs like t001-bukrs, end of it_bukrs. select bukrs into table it_bukrs from t001 where bukrs in s_bukrs. loop at it_bukrs. authority-check object 'F_BKPF_BUK' id 'BUKRS' field it_bukrs-bukrs. if sy-subrc ne 0. message '您没有该公司权限!' type 'E'. exit. endif. endloop. refresh it_bukrs. endform. " func_check_authority
/
本文档为【存货账龄分析明细表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索