1、此资料来自企业管理资源网() , 大量管理资料下载在 SAP 中用承诺项目出现金流量表(报表开发源代码)可能使用到的外部数据 或 SAP 数据表数据的格式、字段等: fkrs 财务管理范围主记录表 fops 承诺项目主记录表 fmmp 现金预算管理行项目表 lfa1 供应商主记录表 kna1 客户主记录表 bsis 总帐未清项表 t001 公司代码主记录表 usr21 用户主记录表 adrp 用户地址表 bkpf 财务凭证抬头表 bseg 财务凭证行项目表 glt0 总帐科目期间余额表 直接法通过分析凭证的承诺项目来取数,SAP 为该项功能定义了一个逻辑数据库 C1F. 本程序 开始部分的逻辑
2、数据库取数部分是 SAP 的标准程序,其功能是将与现金流量相关的数据装入内部表 G_T_FMMP, 这部分程序禁止修改。 直接法: 1、装入金流量表定义参数(FORM fill_item_direct ) 该子程序将的现金流量表项和其对应的承诺项目装入内部表 INT_CASHFLOW. 2、装入与现金流量相关的数据 这部分是逻辑数据库装入,属于 SAP 标准程序,数据关系比较复杂,建议不要做任何改动。 3、计算现金流量 计算的基本思路是对表 G_T_FMMP 进行循环,查找其中每条记录的承诺项目属于INT_CASHFLOW 的 表项后,把其金额累计到相应表项。 REPORT zcmrp001
3、NO STANDARD PAGE HEADING LINE-SIZE 220. TABLES: fkrs, fpos, fmmp, lfa1, kna1 ,bsis, t001, usr21, adrp, bkpf, bseg, glt0. DATA: BEGIN OF g_t_fmmp OCCURS 300, fikrs LIKE fmmp-fikrs, bukrs LIKE fmmp-bukrs, fipos LIKE fmmp-fipos, wrttp LIKE fmmp-wrttp, gjahr LIKE fmmp-gjahr, perio LIKE fmmp-perio, zhldt
4、 LIKE fmmp-zhldt, 此资料来自企业管理资源网() , 大量管理资料下载budat LIKE fmmp-budat, gsber LIKE fmmp-gsber, vo_saknr LIKE fmmp-vo_saknr, lifnr LIKE fmmp-lifnr, kunnr LIKE fmmp-kunnr, fwaer LIKE fmmp-fwaer, fkbtr LIKE fmsu-btr001, zbelnr LIKE cooi-refbn, zbuzei LIKE cooi-rfpos, vo_bukrs LIKE fmmp-vo_bukrs, vo_gjahr LIK
5、E fmmp-vo_gjahr, fitxt LIKE fkrs-fitxt, fname LIKE ffnd-fname, cname LIKE fctr-cname, pname LIKE fpos-pname, wtext LIKE fmmp-wtext, END OF g_t_fmmp. DATA: BEGIN OF g_t_fkrs OCCURS 20, fikrs LIKE fkrs-fikrs, fitxt LIKE fkrs-fitxt, END OF g_t_fkrs. DATA: BEGIN OF g_t_fpos OCCURS 200, fipos LIKE fpos-f
6、ipos, pname LIKE fpos-pname, END OF g_t_fpos. DATA: BEGIN OF g_t_lfa1 OCCURS 200, lifnr LIKE lfa1-lifnr, sortl LIKE lfa1-sortl, END OF g_t_lfa1. DATA: BEGIN OF g_t_kna1 OCCURS 200, kunnr LIKE kna1-kunnr, sortl LIKE kna1-sortl, END OF g_t_kna1. RANGES: r_kunnr FOR kna1-kunnr, r_lifnr FOR lfa1-lifnr,
7、r_fipos FOR fmmp-fipos. 此资料来自企业管理资源网() , 大量管理资料下载DATA: BEGIN OF int_cashflow OCCURS 100, desc(66) TYPE c, r_fipos(66) TYPE c, com_fkbtr LIKE fmmp-fkbtr, fi_fkbtr LIKE fmmp-fkbtr, fi_fwaer LIKE fmmp-fwaer, END OF int_cashflow. DATA: BEGIN OF g_t_t001 OCCURS 300, bukrs LIKE t001-bukrs, butxt LIKE t001
8、-butxt, END OF g_t_t001. DATA: pos TYPE i VALUE 0, num_of_bukrs TYPE i VALUE 0. DATA cashflow_detail. DATA : min_budat LIKE fmmp-budat, max_budat LIKE fmmp-budat, z_min_budat LIKE sy-datum, z_max_budat LIKE sy-datum, z_bukrs LIKE fmmp-bukrs, z_profit LIKE bseg-dmbtr, “净利润 z_bad_debit LIKE bseg-dmbtr
9、, “坏帐准备及计提的资产减值准备 z_asset_dep LIKE bseg-dmbtr, “固定资产折旧 z_intang_dep LIKE bseg-dmbtr, “无形资产摊销 z_longpaid_dep LIKE bseg-dmbtr, “长期待摊费用摊销 z_paid_dec LIKE bseg-dmbtr, “待摊费用减少 z_accrul_inc LIKE bseg-dmbtr, “预提费用增加 z_asset_pro LIKE bseg-dmbtr, “固定资产,长期资产处置损失 z_asset_scr LIKE bseg-dmbtr, “固定资产报废损失 z_fi_exp
10、en LIKE bseg-dmbtr, “财务费用 z_invest_loss LIKE bseg-dmbtr, “投资损失 z_defer_tax LIKE bseg-dmbtr, “递延税款贷项 z_stock LIKE bseg-dmbtr, “存货减少 z_ar LIKE bseg-dmbtr, “经营性应收减少 z_ap LIKE bseg-dmbtr, “经营性应付增加 z_other LIKE bseg-dmbtr, “其他 z_production LIKE bseg-dmbtr, “经营活动产生的现金净额 z_loss LIKE bseg-dmbtr, “总公司下拨弥补亏损
11、z_asset_debit LIKE bseg-dmbtr, “以固定资产偿还债务 z_invest_debit LIKE bseg-dmbtr, “以投资偿还债务 z_asset_invest LIKE bseg-dmbtr, “以固定资产投资 此资料来自企业管理资源网() , 大量管理资料下载z_stock_debit LIKE bseg-dmbtr, “以存货偿还债务 z_asset_rented LIKE bseg-dmbtr, “融资租赁固定资产 z_donation LIKE bseg-dmbtr, “接受捐赠非现金资产 z_debit_short LIKE bseg-dmbtr,
12、 “偿还的经营性债务 z_debit_equit LIKE bseg-dmbtr, “债务转为资本 z_bond_due LIKE bseg-dmbtr, “一年内到期的可转换公司债券 z_money_init LIKE bseg-dmbtr, “货币资金期初余额 z_money_end LIKE bseg-dmbtr, “货币资金期末余额 z_cashs_init LIKE bseg-dmbtr, “现金等价物期初余额 z_cashs_end LIKE bseg-dmbtr, “现金等价物期末余额 z_all_money LIKE bseg-dmbtr. “货币资金及现金等价物净变动 DAT
13、A: BEGIN OF itb0 OCCURS 0, txt(70) TYPE c, num LIKE bseg-dmbtr, END OF itb0, mtxt(70) TYPE c. *INITIALIZATION. PERFORM fill_item_direct. *START-OF-SELECTION. GET fkrs. g_t_fkrs-fikrs = fkrs-fikrs. g_t_fkrs-fitxt = fkrs-fitxt. APPEND g_t_fkrs. GET fpos. g_t_fpos-fipos = fpos-fipos. g_t_fpos-pname = f
14、pos-pname. COLLECT g_t_fpos. GET fmmp. MOVE-CORRESPONDING fmmp TO g_t_fmmp. CASE fmmp-wrttp. WHEN 50 OR 51. “ purchase order g_t_fmmp-zbelnr = fmmp-ebeln. g_t_fmmp-zbuzei = fmmp-ebelp. WHEN 64. “ payment transfer g_t_fmmp-zbelnr = fmmp-kblnr. g_t_fmmp-zbuzei = fmmp-kblpos. WHEN 65. “ funds commitmen
15、ts g_t_fmmp-zbelnr = fmmp-kblnr. g_t_fmmp-zbuzei = fmmp-kblpos. 此资料来自企业管理资源网() , 大量管理资料下载WHEN OTHERS. “ Fi documents g_t_fmmp-zbelnr = fmmp-vo_belnr. g_t_fmmp-zbuzei = fmmp-vo_buzei. ENDCASE. APPEND g_t_fmmp. IF NOT fmmp-kunnr IS INITIAL. r_kunnr-sign = I. r_kunnr-option = EQ. r_kunnr-low = fmmp-kun
16、nr. COLLECT r_kunnr. ENDIF. IF NOT fmmp-lifnr IS INITIAL. r_lifnr-sign = I. r_lifnr-option = EQ. r_lifnr-low = fmmp-lifnr. COLLECT r_lifnr. ENDIF. END-OF-SELECTION. SORT g_t_fmmp BY fikrs bukrs fipos wrttp gjahr perio zhldt zbelnr zbuzei bukrs vo_saknr. RANGES: lr_lifnr FOR lfa1-lifnr, lr_kunnr FOR
17、kna1-kunnr. DATA: l_cnt_from LIKE sy-tabix VALUE 1, l_cnt_to LIKE sy-tabix VALUE 50, l_cnt_lines LIKE sy-tabix. * “/ Lesen Kreditoren-Texte aus Stammdaten-Tabelle IF NOT r_lifnr IS INITIAL. LOOP AT r_lifnr WHERE low = *. DELETE r_lifnr. ENDLOOP. DESCRIBE TABLE r_lifnr LINES l_cnt_lines. “ g_t_fmmp-b
18、udat . min_budat = g_t_fmmp-budat . ENDIF. IF max_budat = r_fipos-low AND g_t_fmmp-fipos = r_fipos-high. int_cashflow-fi_fkbtr = int_cashflow-fi_fkbtr + g_t_fmmp-fkbtr. int_cashflow-com_fkbtr = int_cashflow-com_fkbtr + g_t_fmmp-fkbtr. ENDIF. ENDIF. ENDLOOP. MODIFY TABLE int_cashflow. CLEAR int_cashf
19、low. CLEAR r_fipos. REFRESH r_fipos. ENDLOOP . AT END OF bukrs. PERFORM cal_indirect USING g_t_fmmp-bukrs. PERFORM output_info USING COM. num_of_bukrs = num_of_bukrs + 1. 此资料来自企业管理资源网() , 大量管理资料下载ENDAT. AT END OF fikrs. IF num_of_bukrs NE 1. CLEAR l_sav_butxt. PERFORM output_info USING FI. ENDIF. WR
20、ITE : / text-103. ENDAT. ENDLOOP.TOP-OF-PAGE. IF NOT ( s_budat-low IS INITIAL ). min_budat = s_budat-low. ENDIF. IF NOT ( s_budat-high IS INITIAL ). max_budat = s_budat-high. ENDIF. SKIP 2. WRITE: /100 现 金 流 量 表. WRITE: /. WRITE: /210 会年企 03 表. * IF min_budat(6) = max_budat(6). * WRITE: /104 min_bud
21、at(4), 年, min_budat+4(2), 月, * 202 报表编号: 会商 03 表. * ELSE. * WRITE: /097 日期:, * 103 min_budat, 113 - , 115 max_budat, * 202 报表编号: 会商 03 表. * ENDIF. * WRITE: /012 编制单位: , l_sav_butxt, 100 max_budat(4), 年, max_budat+4(2), 月, max_budat+6(2), 日, 212 单位: 元. WRITE: /011 sy-uline. WRITE : /011 sy-vline, 040
22、 项 目, 085 sy-vline, 087 行次, 093 sy-vline, 095 金 额 , 116 sy-vline, 148 补充资料, 此资料来自企业管理资源网() , 大量管理资料下载190 sy-vline, 192 行次, 198 sy-vline, 金 额, 220 sy-vline. WRITE: /011 sy-uline. * * AT LINE-SELECTION. CHECK l_sav_hide_row_type = EPOS. CALL FUNCTION FM_DOCUMENT_DISPLAY EXPORTING i_wrttp = g_t_fmmp-wr
23、ttp i_belnr = g_t_fmmp-zbelnr i_blpos = g_t_fmmp-zbuzei i_bukrs = g_t_fmmp-vo_bukrs i_gjahr = g_t_fmmp-vo_gjahr. * * AT USER-COMMAND. CASE sy-ucomm. WHEN SELE. SET PF-STATUS SELE. CALL FUNCTION FM_SELECTION_CRITERIA_PRINT EXPORTING i_report_name = RFFMIEP5 EXCEPTIONS OTHERS = 1. ENDCASE. *&- * *& Form READ_FIKRS_TEXT *&- * FORM read_fikrs_text USING u_fikrs CHANGING c_fitxt. g_t_fkrs = space. g_t_fkrs-fikrs = u_fikrs. READ TABLE g_t_fkrs. IF sy-subrc = 0. c_fitxt = g_t_fkrs-fitxt. ENDIF.