收藏 分销(赏)

企业应收款管理概述.docx

上传人:xrp****65 文档编号:8265138 上传时间:2025-02-08 格式:DOCX 页数:33 大小:24.22KB 下载积分:10 金币
下载 相关 举报
企业应收款管理概述.docx_第1页
第1页 / 共33页
企业应收款管理概述.docx_第2页
第2页 / 共33页


点击查看更多>>
资源描述
在SAP中用承诺项目出现金流量表(报表开发源代码) 可能使用到的外部数据 或 SAP数据表数据的格式、字段等: fkrs    财务管理范围主记录表 fops    承诺项目主记录表 fmmp    现金预算管理行项目表 lfa1    供应商主记录表 kna1    客户主记录表 bsis    总帐未清项表 t001    公司代码主记录表 usr21   用户主记录表 adrp    用户地址表 bkpf    财务凭证抬头表 bseg    财务凭证行项目表 glt0    总帐科目期间余额表    直接法通过分析凭证的承诺项目来取数,SAP为该项功能定义了一个逻辑数据库C1F. 本程序 开始部分的逻辑数据库取数部分是SAP的标准程序,其功能是将与现金流量相关的数据装入内部表 G_T_FMMP, 这部分程序禁止修改。     直接法: 1、装入金流量表定义参数(FORM fill_item_direct)   该子程序将的现金流量表项和其对应的承诺项目装入内部表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,        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    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 LIKE 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-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: 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,        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-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,     "坏帐准备及计提的资产减值准备       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_expen     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,     "总公司下拨弥补亏损       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,     "偿还的经营性债务       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.     "货币资金及现金等价物净变动 DATA: 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 = fpos-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 commitments      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-kunnr.    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 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.               "<- insert    IF l_cnt_lines <= 50.                                   "<- insert *     "/ Lieferanten-Kurztexte auf einmal einlesen         "<- insert      SELECT lifnr sortl FROM lfa1              INTO CORRESPONDING FIELDS OF TABLE g_t_lfa1             WHERE lifnr IN r_lifnr.    ELSE.                                                   "<- insert *     "/ Lieferanten-Kurztexte in Bloecken einlesen        "<- insert      DO.                                                  "<- insert *        "/ Bloecke zu je 50 Leferanten bilden             "<- insert        REFRESH lr_lifnr.                                 "<- insert        LOOP AT r_lifnr FROM l_cnt_from TO l_cnt_to.      "<- insert          lr_lifnr = r_lifnr.                            "<- insert          APPEND lr_lifnr.                               "<- insert        ENDLOOP.                                          "<- insert        IF sy-subrc NE 0.                                 "<- insert          EXIT.                                          "<- insert        ENDIF.                                            "<- insert        l_cnt_from = l_cnt_to   + 1.                      "<- insert        l_cnt_to   = l_cnt_from + 50.                     "<- insert *        "/ Lieferanten-Kurztexte lesen                    "<- insert        SELECT lifnr sortl FROM lfa1                      "<- insert           APPENDING CORRESPONDING FIELDS                 "<- insert                     OF TABLE g_t_lfa1                    "<- insert               WHERE lifnr IN lr_lifnr.                   "<- insert      ENDDO.                                               "<- insert    ENDIF.                                                  "<- insert  ENDIF. * "/ Lesen Debitoren-Texte aus Stammdaten-Tabelle  IF NOT r_kunnr IS INITIAL.    LOOP AT r_kunnr WHERE low = '*'.      DELETE r_kunnr.    ENDLOOP.    DESCRIBE TABLE r_kunnr LINES l_cnt_lines.               "<- insert    IF l_cnt_lines <= 50.                                   "<- insert *     "/ Kunden-Kurztexte auf einmal einlesen              "<- insert      SELECT kunnr sortl FROM kna1              INTO CORRESPONDING FIELDS OF TABLE g_t_kna1             WHERE kunnr IN r_kunnr.    ELSE.                                                   "<- insert *     "/ Kunden-Kurztexte in Bloecken einlesen             "<- insert      DO.                                                  "<- insert *        "/ Bloecke zu je 50 Kunden bilden                 "<- insert        REFRESH lr_kunnr.                                 "<- insert        LOOP AT r_kunnr FROM l_cnt_from TO l_cnt_to.      "<- insert          lr_kunnr = r_kunnr.                            "<- insert          APPEND lr_kunnr.                               "<- insert        ENDLOOP.                                          "<- insert        IF sy-subrc NE 0.                                 "<- insert          EXIT.                                          "<- insert        ENDIF.                                            "<- insert        l_cnt_from = l_cnt_to   + 1.                      "<- insert        l_cnt_to   = l_cnt_from + 50.                     "<- insert *        "/ Kunden-Kurztexte lesen                         "<- insert        SELECT kunnr sortl FROM kna1                      "<- insert           APPENDING CORRESPONDING FIELDS                 "<- insert                     OF TABLE g_t_kna1                    "<- insert               WHERE kunnr IN lr_kunnr.                   "<- insert      ENDDO.                                               "<- insert    ENDIF.                                                  "<- 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_sav_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.    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.        MODIFY TABLE int_cashflow.        CLEAR int_cashflow.      ENDLOOP.    ENDAT.    AT NEW bukrs.      PERFORM read_bukrs_text USING g_t_fmmp-bukrs                           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.      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_fmmp-fipos.            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.        IF r_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                                      + 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_cashflow.      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.      WRITE : / 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_budat(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 '   项    目',           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-wrttp            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_
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 管理财经 > 管理学资料

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服