企业应收款管理概述_第1页
企业应收款管理概述_第2页
企业应收款管理概述_第3页
企业应收款管理概述_第4页
企业应收款管理概述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在SAP中用承诺项目出现金流量表(报表开发源代码)可能使用到的外部数据或SAP数据表数据的格式、字段等:fkrs

财务管理范围主记录表fops

承诺项目主记录表fmmp

现金预算管理行项目表lfa1

供应商主记录表kna1

客户主记录表bsis

总帐未清项表t001

公司代码主记录表usr21

用户主记录表adrp

用户地址表bkpf

财务凭证抬头表bseg

财务凭证行项目表glt0

总帐科目期间余额表

直接法通过分析凭证的承诺项目来取数,SAP为该项功能定义了一个逻辑数据库C1F.本程序开始部分的逻辑数据库取数部分是SAP的标准程序,其功能是将与现金流量相关的数据装入内部表G_T_FMMP,这部分程序禁止修改。

直接法:1、装入金流量表定义参数(FORMfill_item_direct)该子程序将的现金流量表项和其对应的承诺项目装入内部表INT_CASHFLOW.2、装入与现金流量相关的数据这部分是逻辑数据库装入,属于SAP标准程序,数据关系比较复杂,建议不要做任何改动。3、计算现金流量计算的基本思路是对表G_T_FMMP进行循环,查找其中每条记录的承诺项目属于INT_CASHFLOW的表项后,把其金额累计到相应表项。REPORTzcmrp001

NOSTANDARDPAGEHEADINGLINE-SIZE220.TABLES:fkrs,fpos,fmmp,lfa1,kna1,bsis,

t001,usr21,adrp,bkpf,bseg,glt0.DATA:BEGINOFg_t_fmmpOCCURS300,

fikrs

LIKEfmmp-fikrs,

bukrs

LIKEfmmp-bukrs,

fipos

LIKEfmmp-fipos,

wrttp

LIKEfmmp-wrttp,

gjahr

LIKEfmmp-gjahr,

perio

LIKEfmmp-perio,

zhldt

LIKEfmmp-zhldt,

budat

LIKEfmmp-budat,

gsber

LIKEfmmp-gsber,

vo_saknrLIKEfmmp-vo_saknr,

lifnr

LIKEfmmp-lifnr,

kunnr

LIKEfmmp-kunnr,

fwaer

LIKEfmmp-fwaer,

fkbtr

LIKEfmsu-btr001,

zbelnr

LIKEcooi-refbn,

zbuzei

LIKEcooi-rfpos,

vo_bukrsLIKEfmmp-vo_bukrs,

vo_gjahrLIKEfmmp-vo_gjahr,

fitxt

LIKEfkrs-fitxt,

fname

LIKEffnd-fname,

cname

LIKEfctr-cname,

pname

LIKEfpos-pname,

wtext

LIKEfmmp-wtext,

ENDOFg_t_fmmp.DATA:BEGINOFg_t_fkrsOCCURS20,

fikrsLIKEfkrs-fikrs,

fitxtLIKEfkrs-fitxt,

ENDOFg_t_fkrs.DATA:BEGINOFg_t_fposOCCURS200,

fiposLIKEfpos-fipos,

pnameLIKEfpos-pname,

ENDOFg_t_fpos.DATA:BEGINOFg_t_lfa1OCCURS200,

lifnrLIKElfa1-lifnr,

sortlLIKElfa1-sortl,

ENDOFg_t_lfa1.DATA:BEGINOFg_t_kna1OCCURS200,

kunnrLIKEkna1-kunnr,

sortlLIKEkna1-sortl,

ENDOFg_t_kna1.RANGES:r_kunnrFORkna1-kunnr,

r_lifnrFORlfa1-lifnr,

r_fiposFORfmmp-fipos.DATA:BEGINOFint_cashflowOCCURS100,

desc(66)

TYPEc,

r_fipos(66)

TYPEc,

com_fkbtr

LIKEfmmp-fkbtr,

fi_fkbtr

LIKEfmmp-fkbtr,

fi_fwaer

LIKEfmmp-fwaer,

ENDOFint_cashflow.DATA:BEGINOFg_t_t001OCCURS300,

bukrsLIKEt001-bukrs,

butxtLIKEt001-butxt,

ENDOFg_t_t001.DATA:

pos

TYPEiVALUE0,

num_of_bukrsTYPEiVALUE0.DATA

cashflow_detail.DATA:min_budat

LIKEfmmp-budat,

max_budat

LIKEfmmp-budat,

z_min_budat

LIKEsy-datum,

z_max_budat

LIKEsy-datum,

z_bukrs

LIKEfmmp-bukrs,

z_profit

LIKEbseg-dmbtr,

"净利润

z_bad_debit

LIKEbseg-dmbtr,

"坏帐准备及计提的资产减值准备

z_asset_dep

LIKEbseg-dmbtr,

"固定资产折旧

z_intang_dep

LIKEbseg-dmbtr,

"无形资产摊销

z_longpaid_depLIKEbseg-dmbtr,

"长期待摊费用摊销

z_paid_dec

LIKEbseg-dmbtr,

"待摊费用减少

z_accrul_inc

LIKEbseg-dmbtr,

"预提费用增加

z_asset_pro

LIKEbseg-dmbtr,

"固定资产,长期资产处置损失

z_asset_scr

LIKEbseg-dmbtr,

"固定资产报废损失

z_fi_expen

LIKEbseg-dmbtr,

"财务费用

z_invest_loss

LIKEbseg-dmbtr,

"投资损失

z_defer_tax

LIKEbseg-dmbtr,

"递延税款贷项

z_stock

LIKEbseg-dmbtr,

"存货减少

z_ar

LIKEbseg-dmbtr,

"经营性应收减少

z_ap

LIKEbseg-dmbtr,

"经营性应付增加

z_other

LIKEbseg-dmbtr,

"其他

z_production

LIKEbseg-dmbtr,

"经营活动产生的现金净额

z_loss

LIKEbseg-dmbtr,

"总公司下拨弥补亏损

z_asset_debit

LIKEbseg-dmbtr,

"以固定资产偿还债务

z_invest_debitLIKEbseg-dmbtr,

"以投资偿还债务

z_asset_investLIKEbseg-dmbtr,

"以固定资产投资

z_stock_debit

LIKEbseg-dmbtr,

"以存货偿还债务

z_asset_rentedLIKEbseg-dmbtr,

"融资租赁固定资产

z_donation

LIKEbseg-dmbtr,

"接受捐赠非现金资产

z_debit_shortLIKEbseg-dmbtr,

"偿还的经营性债务

z_debit_equit

LIKEbseg-dmbtr,

"债务转为资本

z_bond_due

LIKEbseg-dmbtr,

"一年内到期的可转换公司债券

z_money_init

LIKEbseg-dmbtr,

"货币资金期初余额

z_money_end

LIKEbseg-dmbtr,

"货币资金期末余额

z_cashs_init

LIKEbseg-dmbtr,

"现金等价物期初余额

z_cashs_end

LIKEbseg-dmbtr,

"现金等价物期末余额

z_all_money

LIKEbseg-dmbtr.

"货币资金及现金等价物净变动DATA:BEGINOFitb0OCCURS0,

txt(70)TYPEc,

num

LIKEbseg-dmbtr,

ENDOFitb0,

mtxt(70)TYPEc.**INITIALIZATION.PERFORMfill_item_direct.*START-OF-SELECTION.GETfkrs.g_t_fkrs-fikrs=fkrs-fikrs.g_t_fkrs-fitxt=fkrs-fitxt.APPENDg_t_fkrs.GETfpos.g_t_fpos-fipos=fpos-fipos.g_t_fpos-pname=fpos-pname.COLLECTg_t_fpos.GETfmmp.MOVE-CORRESPONDINGfmmpTOg_t_fmmp.CASEfmmp-wrttp.

WHEN'50'OR'51'.

"purchaseorder

g_t_fmmp-zbelnr=fmmp-ebeln.

g_t_fmmp-zbuzei=fmmp-ebelp.

WHEN'64'.

"paymenttransfer

g_t_fmmp-zbelnr=fmmp-kblnr.

g_t_fmmp-zbuzei=fmmp-kblpos.

WHEN'65'.

"fundscommitments

g_t_fmmp-zbelnr=fmmp-kblnr.

g_t_fmmp-zbuzei=fmmp-kblpos.WHENOTHERS.

"Fidocuments

g_t_fmmp-zbelnr=fmmp-vo_belnr.

g_t_fmmp-zbuzei=fmmp-vo_buzei.ENDCASE.APPENDg_t_fmmp.IFNOTfmmp-kunnrISINITIAL.

r_kunnr-sign='I'.

r_kunnr-option='EQ'.

r_kunnr-low

=fmmp-kunnr.COLLECTr_kunnr.ENDIF.IFNOTfmmp-lifnrISINITIAL.r_lifnr-sign

='I'.

r_lifnr-option='EQ'.

r_lifnr-low=fmmp-lifnr.

COLLECTr_lifnr.ENDIF.END-OF-SELECTION.SORTg_t_fmmpBYfikrs

bukrs

fipos

wrttp

gjahrperio

zhldt

zbelnr

zbuzeibukrs

vo_saknr.RANGES:lr_lifnrFORlfa1-lifnr,

lr_kunnrFORkna1-kunnr.DATA:l_cnt_from

LIKEsy-tabixVALUE1,

l_cnt_to

LIKEsy-tabixVALUE50,

l_cnt_linesLIKEsy-tabix.*"/LesenKreditoren-TexteausStammdaten-TabelleIFNOTr_lifnrISINITIAL.LOOPATr_lifnrWHERElow='*'.

DELETEr_lifnr.

ENDLOOP.DESCRIBETABLEr_lifnrLINESl_cnt_lines.

"<-insert

IFl_cnt_lines<=50.

"<-insert*

"/Lieferanten-Kurztexteaufeinmaleinlesen

"<-insertSELECTlifnrsortlFROMlfa1

INTOCORRESPONDINGFIELDSOFTABLEg_t_lfa1

WHERElifnrINr_lifnr.

ELSE.

"<-insert*

"/Lieferanten-KurztexteinBloeckeneinlesen

"<-insert

DO.

"<-insert*

"/Bloeckezuje50Leferantenbilden

"<-insert

REFRESHlr_lifnr.

"<-insert

LOOPATr_lifnrFROMl_cnt_fromTOl_cnt_to.

"<-insert

lr_lifnr=r_lifnr.

"<-insert

APPENDlr_lifnr.

"<-insert

ENDLOOP.

"<-insert

IFsy-subrcNE0.

"<-insert

EXIT.

"<-insert

ENDIF.

"<-insert

l_cnt_from=l_cnt_to

+1.

"<-insert

l_cnt_to

=l_cnt_from+50.

"<-insert*

"/Lieferanten-Kurztextelesen

"<-insert

SELECTlifnrsortlFROMlfa1

"<-insert

APPENDINGCORRESPONDINGFIELDS

"<-insert

OFTABLEg_t_lfa1

"<-insert

WHERElifnrINlr_lifnr.

"<-insert

ENDDO.

"<-insert

ENDIF.

"<-insertENDIF.*"/LesenDebitoren-TexteausStammdaten-TabelleIFNOTr_kunnrISINITIAL.

LOOPATr_kunnrWHERElow='*'.

DELETEr_kunnr.

ENDLOOP.

DESCRIBETABLEr_kunnrLINESl_cnt_lines.

"<-insert

IFl_cnt_lines<=50.

"<-insert*

"/Kunden-Kurztexteaufeinmaleinlesen

"<-insert

SELECTkunnrsortlFROMkna1

INTOCORRESPONDINGFIELDSOFTABLEg_t_kna1

WHEREkunnrINr_kunnr.

ELSE.

"<-insert*

"/Kunden-KurztexteinBloeckeneinlesen

"<-insert

DO.

"<-insert*

"/Bloeckezuje50Kundenbilden

"<-insert

REFRESHlr_kunnr.

"<-insert

LOOPATr_kunnrFROMl_cnt_fromTOl_cnt_to.

"<-insert

lr_kunnr=r_kunnr.

"<-insert

APPENDlr_kunnr.

"<-insert

ENDLOOP.

"<-insert

IFsy-subrcNE0.

"<-insert

EXIT.

"<-insert

ENDIF.

"<-insert

l_cnt_from=l_cnt_to

+1.

"<-insert

l_cnt_to

=l_cnt_from+50.

"<-insert*

"/Kunden-Kurztextelesen

"<-insert

SELECTkunnrsortlFROMkna1

"<-insert

APPENDINGCORRESPONDINGFIELDS

"<-insert

OFTABLEg_t_kna1

"<-insert

WHEREkunnrINlr_kunnr.

"<-insert

ENDDO.

"<-insert

ENDIF.

"<-insertENDIF.SELECTbukrsbutxtFROMt001

INTOCORRESPONDINGFIELDSOFTABLEg_t_t001.DATA:l_sav_wrttp_text(30),

l_sav_fwaerLIKEfmmp-fwaer,

l_sav_butxtLIKEt001-butxt,

l_sav_hide_row_type(4).num_of_bukrs=0.max_budat=0.min_budat='99991231'.LOOPATg_t_fmmp.

IFmin_budat>g_t_fmmp-budat.

min_budat=g_t_fmmp-budat.

ENDIF.

IFmax_budat<g_t_fmmp-budat.

max_budat=g_t_fmmp-budat.

ENDIF.

l_sav_fwaer=g_t_fmmp-fwaer.

ATNEWfikrs.

LOOPATint_cashflow.

CLEARint_cashflow-fi_fkbtr.

MODIFYTABLEint_cashflow.

CLEARint_cashflow.

ENDLOOP.

ENDAT.

ATNEWbukrs.PERFORMread_bukrs_textUSINGg_t_fmmp-bukrs

CHANGINGg_t_t001-butxt.

l_sav_butxt=g_t_t001-butxt.

LOOPATint_cashflow.

CLEARint_cashflow-com_fkbtr.

MODIFYTABLEint_cashflow.

CLEARint_cashflow.

ENDLOOP.

ENDAT.

LOOPATint_cashflow.

PERFORMinput_rangeUSINGint_cashflow-r_fipos.

LOOPATr_fipos.

IFr_fipos-option='EQ'.

IFr_fipos-low=g_t__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.

IFr_fipos-option='BT'.

IFg_t_fmmp-fipos>=r_fipos-lowAND

g_t_fmmp-fipos<=r__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.MODIFYTABLEint_cashflow.

CLEARint_cashflow.

CLEARr_fipos.

REFRESHr_fipos.

ENDLOOP.

ATENDOFbukrs.PERFORMcal_indirectUSINGg_t_fmmp-bukrs.

PERFORMoutput_infoUSING'COM'.

num_of_bukrs=num_of_bukrs+1.

ENDAT.

ATENDOFfikrs.

IFnum_of_bukrsNE1.

CLEARl_sav_butxt.PERFORMoutput_infoUSING'FI'.

ENDIF.

WRITE:/text-103.

ENDAT.ENDLOOP.TOP-OF.IFNOT(s_budat-lowISINITIAL).

min_budat=s_budat-low.ENDIF.IFNOT(s_budat-highISINITIAL).max_budat=s_budat-high.ENDIF.SKIP2.WRITE:/100'现

金流

表'.WRITE:/.WRITE:/210'会年企03表'.*

IFmin_budat(6)=max_budat(6).*

WRITE:/104min_budat(4),'年',min_budat+4(2),'月',*

202'报表编号:会商03表'.*

ELSE.*

WRITE:/097'日期:',*

103min_budat,113'-',115max_budat,*

202'报表编号:会商03表'.*

ENDIF.*WRITE:/012'编制单位:',l_sav_butxt,

100

max_budat(4),'年',max_budat+4(2),'月',

max_budat+6(2),'日',

212'单位:元'.WRITE:

/011sy-uline.WRITE:/011sy-vline,

040'

目',

085sy-vline,

087'行次',

093sy-vline,

095'

',116sy-vline,

148'补充资料',

190sy-vline,

192'行次',

198sy-vline,

'

额',

220sy-vline.WRITE:/011sy-uline.************************************************************************ATLINE-SELECTION.CHECKl_sav_hide_row_type='EPOS'.CALLFUNCTION'FM_DOCUMENT_DISPLAY'

EXPORTINGi_wrttp=g_t_fmmp-wrttp

i_belnr=g_t_fmmp-zbelnri_blpos=g_t_fmmp-zbuzei

i_bukrs=g_t_fmmp-vo_bukrs

i_gjahr=g_t_fmmp-vo_gjahr.************************************************************************ATUSER-COMMAND.CASEsy-ucomm.

WHEN'SELE'.

SETPF-STATUS'SELE'.

CALLFUNCTION'FM_SELECTION_CRITERIA_PRINT'

EXPORTING

i_report_name='RFFMIEP5'

EXCEPTIONS

OTHERS

=1.ENDCASE.*&**&

Form

READ_FIKRS_TEXT*&*FORMread_fikrs_textUSINGu_fikrs

CHANGINGc_fitxt.g_t_fkrs=space.g_t_fkrs-fikrs=u_fikrs.READTABLEg_t_fkrs.IFsy-subrc=0.

c_fitxt=g_t_fkrs-fitxt.ENDIF.ENDFORM.

"READ_FIKRS_TEXT*&**&

Form

READ_FIPOS_TEXT*&*FORMread_fipos_textUSINGu_fipos

CHANGINGc_pname.g_t_fpos=space.g_t_fpos-fipos=u_fipos.READTABLEg_t_fpos.IFsy-subrc=0.

c_pname=g_t_fpos-pname.ENDIF.ENDFORM.

"READ_FIPOS_TEXT*&**&

Form

READ_BUKRS_TEXT*&*FORMread_bukrs_textUSINGu_bukrs

CHANGINGc_butxt.g_t_t001=space.g_t_t001-bukrs=u_bukrs.READTABLEg_t_t001.IFsy-subrc=0.

c_butxt=g_t_t001-butxt.ENDIF.ENDFORM.

"READ_FIPOS_TEXT*&**&

Form

GET_KUNNR_LIFNR_TEXT*&*FORMget_kunnr_lifnr_textUSINGvalue(u_kunnr)

value(u_lifnr)

CHANGINGc_text.CLEARc_text.IFNOTu_kunnrISINITIAL.

IFu_kunnr='*'.

c_text='*'.

ELSE.*

"/LesenDebitor-TextausinternerTabelle

g_t_kna1=space.

g_t_kna1-kunnr=u_kunnr.

READTABLEg_t_kna1.

IFsy-subrc=0.

c_text=g_t_kna1-sortl.

ENDIF.

ENDIF.ENDIF.IFNOTu_lifnrISINITIAL.IFu_lifnr='*'.

c_text='*'.

ELSE.*

"/LesenKreditor-TextausinternerTabelle

g_t_lfa1=space.g_t_lfa1-lifnr=u_lifnr.

READTABLEg_t_lfa1.

IFsy-subrc=0.

c_text=g_t_lfa1-sortl.

ENDIF.

ENDIF.ENDIF.ENDFORM.

"GET_KUNNR_LIFNR_TEXT***********************************************************FORMinput_rangeUSINGvalue(rfipos).DATA:offTYPEi,offsetTYPEi,doingTYPEi.DATA:item(20),str(10).off=0.offset=0.

doing=1.WHILEdoing<>0.

SHIFTrfiposBYoffsetPLACES.SEARCHrfiposFOR','.

IFsy-subrc=0.

offset=sy-fdpos.

MOVErfipos(offset)TOitem.

offset=offset+1.

ELSE.

MOVErfiposTOitem.

doing=0.

ENDIF.

SEARCHitemFOR'-'.

IFsy-subrc=0.

off=sy-fdpos.

MOVEitem(off)TOstr.

off=off+1.

r_fipos-sign

='I'.

r_fipos-option='BT'.

r_fipos-low

=

str.

SHIFTitemBYoffPLACES.

MOVEitemTOstr.

r_fipos-high

=

str.

ELSE.

MOVEitemTOstr.

r_fipos-sign='I'.

r_fipos-option='EQ'.

r_fipos-low

=

str.ENDIF.

APPENDr_fipos.ENDWHILE.ENDFORM.*******FORMoutput_infoUSINGfi_value.DATAzcashflowLIKEfmmp-fkbtr.DATA:iLIKEsy-tabix,

jLIKEsy-tabix,

kLIKEsy-tabix,

lLIKEsy-tabix.i=0.

j=0.k=32.LOOPATint_cashflowFROM1TO32.

IFfi_value='COM'.zcashflow=int_cashflow-com_fkbtr.

ELSEIFfi_value='FI'.zcashflow=int_cashflow-fi_fkbtr.

ENDIF.

i=i+1.

j=j+1.k=k+1.

WRITE:/011sy-vline,014int_cashflow-desc,

085sy-vline,088(2)i,093sy-vline.

IFzcashflow<>0.

WRITE:099zcashflowCURRENCYg_t_fmmp-fwaer.

ENDIF.

IFi<3.

l=i+32.

READTABLEint_cashflowINDEXl.

IFfi_value='COM'.

zcashflow=int_cashflow-com_fkbtr.ELSEIFfi_value='FI'.

zcashflow=int_cashflow-fi_fkbtr.ENDIF.

WRITE:116sy-vline,118(60)int_cashflow-desc,

190sy-vline,193(2)k,198sy-vline.

IFzcashflow<>0.

WRITE:204zcashflowCURRENCYg_t_fmmp-fwaer.

ENDIF.ELSE.

l=i-2.

READTABLEitb0INDEXl.

IFsy-subrc<>0.CLEARitb0.ENDIF.

WRITE:116sy-vline,118(60)itb0-txt,

190sy-vline,193(2)k,198sy-vline.IFitb0-num<>0.

WRITE:204itb0-numCURRENCYg_t_fmmp-fwaer.

ENDIF.

ENDIF.

WRITE:220sy-vline.

WRITE:/011sy-uline.

IFj>=25.

j

=0.

PERFORMout_footer.

NEW.

ENDIF.ENDLOOP.PERFORMout_footer.ENDFORM.***

FORMout_footer

****

***FORMout_footer.DATA:usrname(80)TYPEc.SELECTSINGLE*FROMusr21WHEREbname=sy-uname.SELECTSINGLE*FROMadrp

WHEREpersnumber=usr21-persnumberAND

date_from<=sy-datum

AND

date_to

>=sy-datum.CONCATENATEadrp-name_lastadrp-name_firstINTOusrname.CONDENSEusrnameNO-GAPS.WRITE:/012'制表人员:',(12)usrname,

110'打印日期:',sy-datum,

202'打印时间:',sy-uzeit.ENDFORM.******************************************************************************************计算科目段在指定日期的起始余额************************************************************************************************

**********参数:mdate1

开始日期(含此天)

**********

mdate2

结束日期(不含此天)

**********

mstrin科目编号的匹配模式字符串

**********结果:znum

**********算法:某日余额=年初余额+一月余额+...+

**********

上月余额+本月到mdate2余额

**********

****************************************************************************FORMcal_dates_amountUSINGmdate1mdate2mstringCHANGINGznum.DATA:BEGINOFiglt0OCCURS0.

INCLUDESTRUCTUREglt0.DATA:ENDOFiglt0.DATA:BEGINOFitmpOCCURS0,

num

LIKE

bseg-dmbtr,

ENDOFitmp.DATA:i

LIKEsy-tabix.SELECT*FROMglt0INTOTABLEiglt0

WHEREbukrs

=z_bukrs

AND

ryear

=mdate1(4)

ANDracctLIKEmstring.LOOPATiglt0.

REFRESHitmp.itmp-num=iglt0-hslvt.

APPENDitmp.

itmp-num=iglt0-hsl01.

APPENDitmp.

itmp-num=iglt0-hsl02.

APPENDitmp.

itmp-num=iglt0-hsl03.

APPENDitmp.

itmp-num=iglt0-hsl04.

APPENDitmp.itmp-num=iglt0-hsl05.

APPENDitmp.

itmp-num=iglt0-hsl06.

APPENDitmp.

itmp-num=iglt0-hsl07.

APPENDitmp.

itmp-num=iglt0-hsl08.

APPENDitmp.

itmp-num=iglt0-hsl09.

APPENDitmp.itmp-num=iglt0-hsl10.

APPENDitmp.

itmp-num=iglt0-hsl11.

APPENDitmp.

LOOPATitmpFROM1TOmdate1+4(2).

znum=znum+itmp-num.

ENDLOOP.ENDLOOP.SELECT*FROMbkpfWHEREbukrs=z_bukrs

AND

budat>=mdate1

AND

budat<mdate2.

SELECT*FROMbsisWHEREgjahr=bkpf-gjahrAND

belnr=bkpf-belnrAND

hkontLIKEmstring.

IFbsis-shkzg='S'.

znum=znum+bsis-dmbtr.

ELSE.

znum=znum-bsis-dmbtr.

ENDIF.

ENDSELECT.ENDSELECT.ENDFORM.DEFINEcal_data.types:beginofdatatype,

dnum

likebseg-dmbtr,

"借方金额

cnum

likebseg-dmbtr,

"贷方金额

endofdatatype.data:masset

typedatatype,

"固定资产数据

minvesttypedatatype,

"投资数据

mlib

typedatatype,

"短期负债数据

mstock

typedatatype,

"库存数据

mllib

typedatatype,

"长期负债数据

mequit

typedatatype.

"权益数据loopattab2.

casetab2-hkont(4).

when'1501'or'1701'.

"固定资产和无形资产

iftab2-shkzg='S'.

addtab2-dmbtrtomasset-dnum.

else.addtab2-dmbtrtomasset-cnum.

endif.

when'1101'or'1401'or'1402'.

"短期投资与长期投资

iftab2-shkzg='S'.

addtab2-dmbtrtominvest-dnum.

else.

addtab2-dmbtrtominvest-cnum.

endif.

when'1221'or'1231'or'1243'.

"库存科目

iftab2-shkzg='S'.

addtab2-dmbtrtomstock-dnum.

else.

addtab2-dmbtrtomstock-cnum.

endif.

when'2111'or'2121'or'2181'.

"经营性负债

iftab2-shkzg='S'.

addtab2-dmbtrtomlib-dnum.

else.

addtab2-dmbtrtomlib-cnum.

endif.

when'2321'.

"长期负债

iftab2-shkzg='S'.addtab2-dmbtrtomllib-dnum.

else.

addtab2-dmbtrtomllib-cnum.

endif.

when'3105'or'3111'.

"所有者权益

iftab2-shkzg='S'.

addtab2-dmbtrtomequit-dnum.

else.

addtab2-dmbtrtomequit-cnum.

endif.

endcase.endloop.ifmasset-dnum>0.

"固定资产增加

ifmllib-cnum>0.

"融资租赁固定资产

ifmasset-dnum<mllib-cnum.

z_asset_rented=z_asset_rented+masset-dnum.

mllib-cnum

=mllib-cnum

-masset-dnum.masset-dnum

=0.

else.

z_asset_rented=z_asset_rented+mllib-cnum.

masset-dnum

=masset-dnum

-mllib-cnum.mllib-cnum

=0.

endif.

endif.endif.ifmasset-cnum>0.

"固定资产减少

ifmlib-dnum>0.

"固定资产偿还债务(经营性)

ifmasset-cnum>mlib-dnum.

z_asset_debit=z_asset_debit+mlib-dnum.

z_debit_short=z_debit_short+mlib-dnum.

masset-cnum

=masset-cnum

-mlib-dnum.mlib-dnum

=0.

else.

z_asset_debit=z_asset_debit+masset-cnum.

z_debit_short=z_debit_short+masset-cnum.mlib-dnum

=mlib-dnum

-masset-cnum.

masset-cnum

=0.

endif.

endif.

ifmllib-dnum>0.

"固定资产偿还债务(长期)

ifmasset-cnum>mllib-dnum.

z_asset_debit=z_asset_debit+mllib-dnum.

masset-cnum

=masset-cnum

-mllib-dnum.

mllib-dnum

=0.

else.z_asset_debit=z_asset_debit+masset-cnum.

mllib-dnum

=mllib-dnum

-masset-cnum.

masset-cnum

=0.

endif.endif.

ifminvest-dnum>0.

"以固定资产投资

ifmasset-cnum>minvest-dnum.

z_asset_invest=z_asset_invest+minvest-dnum.

masset-cnum

=masset-cnum

-minvest-dnum.

minvest-dnum

=0.

else.

z_asset_invest=z_asset_invest+masset-cnum.

minvest-dnum

=minvest-dnum

-masset-cnum.

masset-cnum

=0.

endif.

endif.endif.ifminvest-dnum>0.

"投资增加

ifmasset-cnum>0.

"以固定资产投资

ifmasset-cnum>minvest-dnum.

z_asset_invest=z_asset_invest+minvest-dnum.

masset-cnum

=masset-cnum

-minvest-dnum.

minvest

=0.

else.z_asset_invest=z_asset_invest+masset-cnum.

minvest-dnum

=minvest-dnum

-masset-cnum.

masset-cnum

=0.

endif.

endif.endif.ifminvest-cnum>0.

"投资减少

ifmlib-dnum>0.

"以投资偿还债务(经营性)

ifmlib-dnum>minvest-cnum.

z_invest_debit=z_invest_debit+minvest-cnum.

z_debit_short

=z_debit_short

+minvest-cnum.

mlib-dnum

=mlib-dnum

-minvest-cnum.

minvest-cnum

=0.else.

z_invest_debit=z_invest_debit+mlib-dnum.z_debit_short

=z_debit_short

+mlib-dnum.

minvest-cnum

=minvest-cnum

-mlib-dnum.

mlib-dnum

=0.

endif.endif.

ifmllib-dnum>0.

"以投资偿还债务(长期)

ifmllib-dnum>minvest-cnum.

z_invest_debit=z_invest_debit+minvest-cnum.

mllib-dnum

=mllib-dnum

-minvest-cnum.

minvest-cnum

=0.

else.

z_invest_debit=z_invest_debit+mllib-dnum.

minvest-cnum

=minvest-cnum

-mllib-dnum.mllib-dnum

=0.

endif.

endif.endif.ifmstock-cnum>0.

"存货减少

ifmlib-dnum>0.

"以存货偿还债务(经营性)

ifmlib-dnum>mstock-cnum.

z_stock_debit=z_stock_debit+mstock-cnum.

z_debit_short=z_debit_short+mstock-cnum.

mlib-dnum

=mlib-dnum

-mstock-cnum.mstock-cnum

=0.

else.

z_stock_debit=z_stock_debit+mlib-dnum.

z_debit_short=z_debit_short+mlib-dnum.mstock-cnum

=mstock-cnum

-mlib-dnum.

mlib-dnum

=0.

endif.

endif.

ifmllib-dnum>0.

"以存货偿还债务(长期)

ifmllib-dnum>mstock-cnum.

z_stock_debit=z_stock_debit+mstock-cnum.

mllib-dnum

=mllib-dnum

-mstock-cnum.

mstock-cnum

=0.

else.z_stock_debit=z_stock_debit+mllib-dnum.

mstock-cnum

=mstock-cnum

-mllib-dnum.

mllib-dnum

=0.

endif.endif.endif.ifmequit-cnum>0.

"资本增加

ifmlib-dnum>0.

ifmlib-dnum>mequit-cnum.z_debit_equit=z_debit_equit+mequit-cnum.

z_debit_short=z_debit_short+mequit-cnum.

mlib-dnum

=mlib-dnum

-mequit-cnum.

mequit-cnum

=0.

else.z_debit_equit=z_debit_equit+mlib-dnum.

z_debit_short=z_debit_short+mlib-dnum.

mequit-cnum

=mequit-cnum

-mlib-dnum.

mlib-dnum

=0.

endif.

endif.

ifmllib-dnum>0.

ifmllib-dnum>mequit-cnum.z_debit_equit=z_debit_equit+mequit-cnum.

mllib-dnum

=mllib-dnum

-mequit-cnum.

mequit-cnum

=0.

else.

z_debit_equit=z_debit_equit+mllib-dnum.

mequit-cnum

=mequit-cnum

-mllib-dnum.

mlib-dnum

=0.

endif.endif.endif.END-OF-DEFINITION.***

FORMcal_indirect

****

****

-->pbukrs

***FORMcal_indirectUSINGpbukrsLIKEfmmp-bukrs.DATA:BEGINOFtab1OCCURS0,

gjahr

LIKEbkpf-gjahr,

belnr

LIKEbkpf-belnr,

ENDOFtab1,

BEGINOFtab2OCCURS0,

gjahr

LIKEbseg-gjahr,

belnr

LIKEbseg-belnr,hkont

LIKEbseg-hkont,

shkzg

LIKEbseg-shkzg,

dmbtrLIKEbseg-dmbtr,

ENDOFtab2,

BEGINOFtab3OCCURS0,

gjahr

LIKEbseg-gjahr,

belnr

LIKEbseg-belnr,

hkont

LIKEbseg-hkont,

shkzg

LIKEbseg-shkzg,dmbtr

LIKEbseg-dmbtr,

ENDOFtab3.IFNOT(s_budat-lowISINITIAL).

z_min_budat=s_budat-low.ELSE.z_min_budat=min_budat.ENDIF.IFNOT(s_budat-highISINITIAL).

z_max_budat=s_budat-high.ELSE.

z_max_budat=max_budat.ENDIF.z_bukrs=pbukrs.SELECTgjahrbelnrFROMbkpf

INTO

CORRESPONDINGFIELDSOFTABLEtab1

WHEREbukrs

=z_bukrs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论