在sap中用承诺项目出现金流量表(报表开发源代码).docx

上传人:scccc 文档编号:13053773 上传时间:2021-12-12 格式:DOCX 页数:33 大小:21.44KB
返回 下载 相关 举报
在sap中用承诺项目出现金流量表(报表开发源代码).docx_第1页
第1页 / 共33页
在sap中用承诺项目出现金流量表(报表开发源代码).docx_第2页
第2页 / 共33页
在sap中用承诺项目出现金流量表(报表开发源代码).docx_第3页
第3页 / 共33页
在sap中用承诺项目出现金流量表(报表开发源代码).docx_第4页
第4页 / 共33页
在sap中用承诺项目出现金流量表(报表开发源代码).docx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《在sap中用承诺项目出现金流量表(报表开发源代码).docx》由会员分享,可在线阅读,更多相关《在sap中用承诺项目出现金流量表(报表开发源代码).docx(33页珍藏版)》请在三一文库上搜索。

1、.天马行空官方博客: ;QQ:1318241189;QQ群:175569632在SAP中用承诺项目出现金流量表(报表开发源代码)可能使用到的外部数据 或 SAP数据表数据的格式、字段等: fkrs    财务管理范围主记录表 fops    承诺项目主记录表 fmmp    现金预算管理行项目表 lfa1    供应商主记录表 kna1    客户主记录表 bsis    总帐未清项表 t001    公司代码主记录表 usr21   用户主记录

2、表 adrp    用户地址表 bkpf    财务凭证抬头表 bseg    财务凭证行项目表 glt0    总帐科目期间余额表    直接法通过分析凭证的承诺项目来取数,SAP为该项功能定义了一个逻辑数据库C1F. 本程序 开始部分的逻辑数据库取数部分是SAP的标准程序,其功能是将与现金流量相关的数据装入内部表 G_T_FMMP, 这部分程序禁止修改。     直接法: 1、装入金流量表定义参数(FORM fill_item_direct)   该子程序将的现

3、金流量表项和其对应的承诺项目装入内部表INT_CASHFLOW. 2、装入与现金流量相关的数据   这部分是逻辑数据库装入,属于SAP标准程序,数据关系比较复杂,建议不要做任何改动。 3、计算现金流量   计算的基本思路是对表G_T_FMMP进行循环,查找其中每条记录的承诺项目属于INT_CASHFLOW的 表项后,把其金额累计到相应表项。 REPORT zcmrp001  NO STANDARD PAGE HEADING LINE-SIZE 220. TABLES: fkrs, fpos, fmmp, lfa1, kna1 ,bsis,    

4、;    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,      

5、   wrttp    LIKE fmmp-wrttp,         gjahr    LIKE fmmp-gjahr,         perio    LIKE fmmp-perio,         zhldt    LIKE fmmp-zhldt,         budat    LIKE fmmp-budat,

6、        gsber    LIKE fmmp-gsber,         vo_saknr LIKE fmmp-vo_saknr,         lifnr    LIKE fmmp-lifnr,         kunnr    LIKE fmmp-kunnr,         fwaer    LIKE

7、 fmmp-fwaer,         fkbtr    LIKE fmsu-btr001,         zbelnr   LIKE cooi-refbn,         zbuzei   LIKE cooi-rfpos,         vo_bukrs LIKE fmmp-vo_bukrs,         vo_gjahr LIKE fmmp-

8、vo_gjahr,         fitxt    LIKE fkrs-fitxt,         fname    LIKE ffnd-fname,         cname    LIKE fctr-cname,         pname    LIKE fpos-pname,         wtext

9、   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,       &#

10、160; fipos LIKE fpos-fipos,         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: BEG

11、IN 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,        r_fipos FOR fmmp-fipos.

12、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,   

13、0;     fi_fwaer     LIKE fmmp-fwaer,      END OF int_cashflow. DATA: BEGIN OF g_t_t001 OCCURS 300,         bukrs LIKE t001-bukrs,         butxt LIKE t001-butxt,      END OF g_t_t001. DATA:   pos   

14、60;      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    L

15、IKE sy-datum,       z_max_budat    LIKE sy-datum,       z_bukrs        LIKE fmmp-bukrs,       z_profit       LIKE bseg-dmbtr,     "净利润       z_bad_debit    LIKE bseg-dmbt

16、r,     "坏帐准备及计提的资产减值准备       z_asset_dep    LIKE bseg-dmbtr,     "固定资产折旧       z_intang_dep   LIKE bseg-dmbtr,     "无形资产摊销       z_longpaid_dep LIKE bseg-dmbtr,     "长期待摊费用摊销  

17、;     z_paid_dec     LIKE bseg-dmbtr,     "待摊费用减少       z_accrul_inc   LIKE bseg-dmbtr,     "预提费用增加       z_asset_pro    LIKE bseg-dmbtr,     "固定资产,长期资产处置损失       z_asset_scr

18、   LIKE bseg-dmbtr,     "固定资产报废损失       z_fi_expen     LIKE bseg-dmbtr,     "财务费用       z_invest_loss  LIKE bseg-dmbtr,     "投资损失       z_defer_tax    LIKE bseg-dmbtr,  

19、  "递延税款贷项       z_stock        LIKE bseg-dmbtr,     "存货减少       z_ar           LIKE bseg-dmbtr,     "经营性应收减少       z_ap           LIKE bseg-dmbtr

20、,     "经营性应付增加       z_other        LIKE bseg-dmbtr,     "其他       z_production   LIKE bseg-dmbtr,     "经营活动产生的现金净额       z_loss         LIKE bseg-dmbtr,   

21、0; "总公司下拨弥补亏损       z_asset_debit  LIKE bseg-dmbtr,     "以固定资产偿还债务       z_invest_debit LIKE bseg-dmbtr,     "以投资偿还债务       z_asset_invest LIKE bseg-dmbtr,     "以固定资产投资       z_stock_de

22、bit  LIKE bseg-dmbtr,     "以存货偿还债务       z_asset_rented LIKE bseg-dmbtr,     "融资租赁固定资产       z_donation     LIKE bseg-dmbtr,     "接受捐赠非现金资产       z_debit_short  LIKE bseg-dmbtr,    

23、; "偿还的经营性债务       z_debit_equit  LIKE bseg-dmbtr,     "债务转为资本       z_bond_due     LIKE bseg-dmbtr,     "一年内到期的可转换公司债券       z_money_init   LIKE bseg-dmbtr,     "货币资金期初余额    

24、  z_money_end    LIKE bseg-dmbtr,     "货币资金期末余额       z_cashs_init   LIKE bseg-dmbtr,     "现金等价物期初余额       z_cashs_end    LIKE bseg-dmbtr,     "现金等价物期末余额       z_all_money   &

25、#160;LIKE bseg-dmbtr.     "货币资金及现金等价物净变动 DATA: BEGIN OF itb0 OCCURS 0,          txt(70) TYPE c,          num     LIKE bseg-dmbtr,      END OF itb0,      mtxt(70) TYPE c. *INITIALIZATION. PERFORM

26、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 = fpos-pname.  COLLECT g_t_fpos. GET fmmp.  MOVE-CORRESPONDING fmmp TO g_t_fmmp. &

27、#160;CASE fmmp-wrttp.    WHEN '50' OR '51'.               " purchase order      g_t_fmmp-zbelnr = fmmp-ebeln.      g_t_fmmp-zbuzei = fmmp-ebelp.    WHEN '64'.        

28、               " payment transfer      g_t_fmmp-zbelnr = fmmp-kblnr.      g_t_fmmp-zbuzei = fmmp-kblpos.    WHEN '65'.                       " funds com

29、mitments      g_t_fmmp-zbelnr = fmmp-kblnr.      g_t_fmmp-zbuzei = fmmp-kblpos.    WHEN OTHERS.                     " Fi documents      g_t_fmmp-zbelnr = fmmp-vo_belnr.      g

30、_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-kunnr.    COLLECT r_kunnr.  ENDIF.  I

31、F 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 &

32、#160;                 perio  zhldt  zbelnr                   zbuzei bukrs  vo_saknr.  RANGES: lr_lifnr FOR lfa1-lifnr,          lr_kunnr FOR kna1-kunnr.  DATA: l_cnt

33、_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 = '*&#

34、39;.      DELETE r_lifnr.    ENDLOOP.    DESCRIBE TABLE r_lifnr LINES l_cnt_lines.               "<- insert    IF l_cnt_lines <= 50.                      

35、             "<- insert *     "/ Lieferanten-Kurztexte auf einmal einlesen         "<- insert      SELECT lifnr sortl FROM lfa1              INTO CORRESPONDING FIELDS OF

36、 TABLE g_t_lfa1             WHERE lifnr IN r_lifnr.    ELSE.                                                   "<- insert * 

37、60;   "/ Lieferanten-Kurztexte in Bloecken einlesen        "<- insert      DO.                                                

38、 "<- insert *        "/ Bloecke zu je 50 Leferanten bilden             "<- insert        REFRESH lr_lifnr.                            

39、     "<- insert        LOOP AT r_lifnr FROM l_cnt_from TO l_cnt_to.      "<- insert          lr_lifnr = r_lifnr.                            &quo

40、t;<- insert          APPEND lr_lifnr.                               "<- insert        ENDLOOP.                     

41、0;                    "<- insert        IF sy-subrc NE 0.                                 "<- insert          

42、;EXIT.                                          "<- insert        ENDIF.                           

43、60;                "<- insert        l_cnt_from = l_cnt_to   + 1.                      "<- insert        l_cnt_to   = l_cnt_from + 50. 

44、0;                   "<- insert *        "/ Lieferanten-Kurztexte lesen                    "<- insert        SELECT lifnr sortl FROM lfa1  

45、                    "<- insert           APPENDING CORRESPONDING FIELDS                 "<- insert                    

46、OF TABLE g_t_lfa1                    "<- insert               WHERE lifnr IN lr_lifnr.                   "<- insert      ENDDO.   

47、0;                                           "<- insert    ENDIF.                                

48、                  "<- insert  ENDIF. * "/ Lesen Debitoren-Texte aus Stammdaten-Tabelle  IF NOT r_kunnr IS INITIAL.    LOOP AT r_kunnr WHERE low = '*'.      DELETE r_kunnr.    ENDLOOP.  

49、;  DESCRIBE TABLE r_kunnr LINES l_cnt_lines.               "<- insert    IF l_cnt_lines <= 50.                                   "<- insert * 

50、0;   "/ Kunden-Kurztexte auf einmal einlesen              "<- insert      SELECT kunnr sortl FROM kna1              INTO CORRESPONDING FIELDS OF TABLE g_t_kna1           &#

51、160; WHERE kunnr IN r_kunnr.    ELSE.                                                   "<- insert *     "/ Kunden-Kurztexte in Bloecken einle

52、sen             "<- insert      DO.                                                  "<- insert *     &#

53、160;  "/ Bloecke zu je 50 Kunden bilden                 "<- insert        REFRESH lr_kunnr.                                 "<- insert

54、        LOOP AT r_kunnr FROM l_cnt_from TO l_cnt_to.      "<- insert          lr_kunnr = r_kunnr.                            "<- insert     

55、0;    APPEND lr_kunnr.                               "<- insert        ENDLOOP.                               &#

56、160;          "<- insert        IF sy-subrc NE 0.                                 "<- insert          EXIT.        

57、;                                  "<- insert        ENDIF.                                     &

58、#160;      "<- insert        l_cnt_from = l_cnt_to   + 1.                      "<- insert        l_cnt_to   = l_cnt_from + 50.           &#

59、160;         "<- insert *        "/ Kunden-Kurztexte lesen                         "<- insert        SELECT kunnr sortl FROM kna1         &

60、#160;            "<- insert           APPENDING CORRESPONDING FIELDS                 "<- insert                     OF TABLE g_t_kna1  

61、;                  "<- insert               WHERE kunnr IN lr_kunnr.                   "<- insert      ENDDO.          

62、                                     "<- insert    ENDIF.                                       &

63、#160;          "<- insert  ENDIF.  SELECT bukrs butxt FROM t001         INTO CORRESPONDING FIELDS OF TABLE g_t_t001.  DATA: l_sav_wrttp_text(30),        l_sav_fwaer LIKE fmmp-fwaer,        l_s

64、av_butxt LIKE t001-butxt,        l_sav_hide_row_type(4).  num_of_bukrs = 0.  max_budat = 0.  min_budat = '99991231' .  LOOP AT g_t_fmmp.    IF min_budat > g_t_fmmp-budat .      min_budat = g_t_fmmp-budat .    ENDIF

65、.    IF max_budat < g_t_fmmp-budat .      max_budat = g_t_fmmp-budat .    ENDIF.    l_sav_fwaer = g_t_fmmp-fwaer.    AT NEW fikrs.      LOOP AT int_cashflow.        CLEAR int_cashflow-fi_fkbtr.    

66、    MODIFY TABLE int_cashflow.        CLEAR int_cashflow.      ENDLOOP.    ENDAT.    AT NEW bukrs.      PERFORM read_bukrs_text USING g_t_fmmp-bukrs                     &

67、#160;     CHANGING g_t_t001-butxt.      l_sav_butxt = g_t_t001-butxt.      LOOP AT int_cashflow.        CLEAR int_cashflow-com_fkbtr.        MODIFY TABLE int_cashflow.        CLEAR int_cashflow.  

68、;    ENDLOOP.    ENDAT.    LOOP AT int_cashflow.      PERFORM input_range USING int_cashflow-r_fipos.      LOOP AT r_fipos.        IF r_fipos-option = 'EQ'.          IF r_fipos-low = g_t_

69、fmmp-fipos.            int_cashflow-fi_fkbtr  = int_cashflow-fi_fkbtr                                      + g_t_fmmp-fkbtr.            int_

70、cashflow-com_fkbtr = int_cashflow-com_fkbtr                                      + g_t_fmmp-fkbtr.          ENDIF.        ENDIF.        IF r

71、_fipos-option = 'BT'.          IF g_t_fmmp-fipos >= r_fipos-low AND                    g_t_fmmp-fipos <= r_fipos-high.            int_cashflow-fi_fkbtr  = int_cashflow-fi_fkbtr

72、                                      + g_t_fmmp-fkbtr.            int_cashflow-com_fkbtr = int_cashflow-com_fkbtr                 

73、0;                    + g_t_fmmp-fkbtr.          ENDIF.        ENDIF.      ENDLOOP.      MODIFY TABLE int_cashflow.      CLEAR int_cashflow.      

74、;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.    ENDA

75、T.    AT END OF fikrs.      IF num_of_bukrs NE 1.        CLEAR l_sav_butxt.        PERFORM output_info USING 'FI'.      ENDIF.      WRITE : / text-103.    ENDAT.  ENDLOOP.TOP-OF-PAGE

76、.  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 &

77、#39;会年企03表'. *  IF min_budat(6) = max_budat(6). *    WRITE: /104 min_budat(4), '年', min_budat+4(2), '月', *            202 '报表编号: 会商03表'. *  ELSE. *    WRITE: /097 '日期:', *         

78、0;  103 min_budat, 113 '-' , 115 max_budat, *            202 '报表编号: 会商03表'. *  ENDIF. *  WRITE: /012 '编制单位: ', l_sav_butxt,          100  max_budat(4), '年', max_budat+4(2), '月',  

79、            max_budat+6(2), '日',          212 '单位: 元'.  WRITE:  /011 sy-uline.  WRITE : /011 sy-vline,      040 '   项    目',           085 sy-vline, &#

80、160;    087 '行次',        093 sy-vline,           095 '      金   额  ',           116 sy-vline,      148 '补充资料',           190 sy-vli

81、ne,      192 '行次',        198 sy-vline,           '      金   额',   220 sy-vline.  WRITE: /011 sy-uline. * * AT LINE-SELECTION.  CHECK l_sav_hide_row_type = 'EPOS'.  CALL FUNCTI

82、ON 'FM_DOCUMENT_DISPLAY'       EXPORTING            i_wrttp = g_t_fmmp-wrttp            i_belnr = g_t_fmmp-zbelnr            i_blpos = g_t_fmmp-zbuzei           &

83、#160;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'

84、           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_f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1