联芯科技ERP项目-技术文档-FICO-013-应收应付帐龄分析表_第1页
联芯科技ERP项目-技术文档-FICO-013-应收应付帐龄分析表_第2页
联芯科技ERP项目-技术文档-FICO-013-应收应付帐龄分析表_第3页
联芯科技ERP项目-技术文档-FICO-013-应收应付帐龄分析表_第4页
联芯科技ERP项目-技术文档-FICO-013-应收应付帐龄分析表_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE12 DATE\@"M/d/yyyy"10/29/2009Version1.0 FILENAME11联芯科技ERP项目_技术文档_FICO_013_应收应付帐龄分析表V1.220090922(3).docPAGE1XXXXXX项目 DATE\@"M/d/yyyy"10/29/2009Version1.0 第I部分:需求模块MACROBUTTONCheckIt_CheckBox£MM MACROBUTTONCheckIt_CheckBox£PP MACROBUTTONCheckIt_CheckBox£SD ■FI MACROBUTTONCheckIt_CheckBox£CO MACROBUTTONCheckIt_CheckBox£IP/FMMACROBUTTONCheckIt_CheckBox£其它Spec编号ZLC_SPEC_FICO_013短描述应收应付帐龄分析表类型MACROBUTTONCheckIt_Radiobutton报表MACROBUTTONCheckIt_RadiobuttonABAPProgramMACROBUTTONCheckIt_RadiobuttonInformationSystemMACROBUTTONCheckIt_RadiobuttonReportPrinter MACROBUTTONCheckIt_RadiobuttonReportWriterMACROBUTTONCheckIt_RadiobuttonSAPQueryMACROBUTTONCheckIt_RadiobuttonBWreportMACROBUTTONCheckIt_RadiobuttonCrystalReportsMACROBUTTONCheckIt_RadiobuttonOthersMACROBUTTONUnCheckIt_Radiobutton表单MACROBUTTONCheckIt_Radiobutton流程增强MACROBUTTONCheckIt_RadiobuttonUserExitMACROBUTTONCheckIt_RadiobuttonBADIMACROBUTTONCheckIt_RadiobuttonDialogProgram MACROBUTTONCheckIt_RadiobuttonOtherseMACROBUTTONCheckIt_Radiobutton接口MACROBUTTONCheckIt_RadiobuttonBAPIMACROBUTTONCheckIt_RadiobuttonIDOCMACROBUTTONCheckIt_RadiobuttonALEMACROBUTTONCheckIt_RadiobuttonOthersendMACROBUTTONCheckIt_Radiobutton数据转移需求优先级MACROBUTTONUnCheckIt_RadiobuttonHigh/关键 MACROBUTTONCheckIt_RadiobuttonMid/推荐 MACROBUTTONCheckIt_RadiobuttonLow/可选用户MACROBUTTONNextCell肖丽华要求日期月结前预计开发天数(由功能顾问与开发顾问评估)必填_____天是否有标准功能MACROBUTTONCheckIt_RadiobuttonYes MACROBUTTONUnCheckIt_RadiobuttonNo标准功能未采用的原因:MACROBUTTONCheckIt_RadiobuttonPerformanceMACROBUTTONCheckIt_RadiobuttonComplexityMACROBUTTONCheckIt_RadiobuttonOtherse参考的标准功能表单开发:列出参考的标准的Form的技术名称报表开发:列出参考的标准报表文档变更历史版本号文档维护时间姓名简要的描述V1.0200肖丽华初建V1.12009-09-18肖丽华修改V1.22009-09-22肖丽华修改

第II部分:详细功能描述目的:日常出具应收、应付帐龄分析表功能描述:在任何时候都能进行应收、应付帐龄分析表、打印选择条件见后详述财务部所有同仁都可以查询,总帐会计及三级经理以上可以打印使用开发新程序打印运行频率MACROBUTTONUnCheckIt_Radiobutton任何时间MACROBUTTONCheckIt_Radiobutton每天MACROBUTTONCheckIt_Radiobutton每周MACROBUTTONCheckIt_Radiobutton两周MACROBUTTONCheckIt_Radiobutton每月MACROBUTTONCheckIt_Radiobutton每年MACROBUTTONCheckIt_Radiobutton其它:运行方式MACROBUTTONUnCheckIt_Radiobutton手工MACROBUTTONCheckIt_Radiobutton自动MACROBUTTONCheckIt_Radiobutton批处理MACROBUTTONCheckIt_Radiobutton在线处理输出方式MACROBUTTONCheckIt_Radiobutton屏幕输出MACROBUTTONCheckIt_Radiobutton打印MACROBUTTONCheckIt_Radiobutton文件输出MACROBUTTONUnCheckIt_Radiobutton其它:打印和文件输出打印机类型激光打印机纸张大小A4横印语言简体中文选择屏幕: 顺序字段名称字段技术名称字段描述P/S必填/可选特殊需求1公司代码公司代码P必填默认值D3002过帐日期截至日期P必填默认为当前日期3会计年度会计年度P必填默认本会计年度4科目SKB1-SAKNRS可选MITKZ=D或K5客户KNB1-KUNNR客户P必填默认为所有客户6供应商LFB1-LIFNR供应商P必填默认为所有供应商且账户组≠Z9007供应商LFB1-LIFNR员工P必填默认为所有员工且账户组=Z900报表/表单的字段抬头字段/表尾字段见附加EXCEL(应收、应付帐龄分析表样表)。顺序字段名称字段技术名称字段描述特殊需求1企业名称T001-BUTXT公司代码对应的名称2过账日期BSID-BUDAT取选择屏幕上的截止日期格式/屏幕设计:见附件EXCEL(应收、应付帐龄分析表样表)。逻辑关系:见下附件EXCEL(应收、应付帐龄分析表公式).一、应收帐龄分析表根据输入条件中输入的客户(KUNNR)为关键值到BSID表中找相应的凭证编码(BELNR)和行项目(BUZEI)。再根据输入条件中输入的客户(KUNNR)为关键值到BSAD表中找清账日期(AUGDT)大于屏幕选择日期且过账日期(BUDAT)小于或等于选择屏幕日期的凭证编号(BELNR)和行项目(BUZEI)。以找到的凭证编码(BELNR)和行项目(BUZEI)为关键值到FAGLFLEXA表中找凭证编码(DOCNR)和行项目(BUZEI)对应的利润中心(PRCTR)。在FAGLFLEXA表取凭证编码(DOCNR)、行项目(BUZEI)和科目编号(RACCT)字段相同的明细数据数据,用借方(S)本位币金额(HSL)合计加上贷方(H)本位币金额(HSL)的合计差额列示为余额。如余额为零该条不显示。以找到凭证编码(DOCNR)和凭证行项目(BUZEI)为关键值到BSID和BSAD表取凭证编码(BELNR)、行项目(BUZEI)字段相同的明细数据数据,用输入条件中输入的过账日期(BUDAT)减付款基准日期(ZFBDT)减天数1(ZBD1T)所得的值,与天数1(ZBD1T)比较,选择值小于或等于0时的凭证编码(BELNR)、行项目(BUZEI);再以找到的这些凭证编号到FAGLFLEXA表取凭证编码(DOCNR)、行项目(BUZEI)和科目编号(RACCT)字段相同的明细数据数据,用借方(S)本位币金额(HSL)合计加上贷方(H)本位币金额(HSL)的合计差额列示为未到期余额;以此类推其余列的余额根据输入条件中输入的客户(KUNNR)为关键值到KNA1表中找客户(KUNNR)对应的名称(NAME1)二、应付帐龄分析表1)根据输入条件中输入的供应商(LIFNR)为关键值到BSIK表中找相应的凭证编码(BELNR)和行项目(BUZEI),特殊G/L标识(UMSKZ)为F的凭证不取。2)再根据输入条件中输入的供应商(LIFNR)为关键值到BSAK表中找清账日期(AUGDT)大于屏幕选择日期且过账日期(BUDAT)小于或等于选择屏幕日期的凭证编号(BELNR)和行项目(BUZEI)3)以找到的凭证编码(BELNR)和行项目(BUZEI)为关键值到FAGLFLEXA表中找凭证编码(DOCNR)和行项目(BUZEI)对应的利润中心(PRCTR)。4)在FAGLFLEXA表取凭证编码(DOCNR)、行项目(BUZEI)和科目编号(RACCT)字段相同的明细数据数据,(贷方(H)本位币金额(HSL)的合计加上借方(S)本位币金额(HSL)合计差额)×(-1)列示为余额。如余额为零该条不显示。其中,对于员工应用借方(S)本位币金额(HSL)合计加上贷方(H)本位币金额(HSL)的合计差额列示为未到期余额。5)以找到凭证编码(DOCNR)和凭证行项目(BUZEI)为关键值到BSIK和BSAK表取凭证编码(BELNR)、行项目(BUZEI)字段相同的明细数据数据,用输入条件中输入的过账日期(BUDAT)减付款基准日期(ZFBDT)减天数1(ZBD1T)所得的值,与天数1(ZBD1T)比较,选择值小于或等于0时的凭证编码(BELNR)、行项目(BUZEI);再以找到的这些凭证编号到FAGLFLEXA表取凭证编码(DOCNR)、行项目(BUZEI)和科目编号(RACCT)字段相同的明细数据数据,用(贷方(H)本位币金额(DMBTR)合计加上借方(S)本位币金额(DMBTR)的合计差额)×(-1)列示为未到期余额;以此类推其余列的余额。其中,对于员工应用借方(S)本位币金额(HSL)合计加上贷方(H)本位币金额(HSL)的合计差额列示为未到期余额6)根据输入条件中输入的供应商(LIFNR)为关键值到LFA1表中找供应商(LIFNR)对应的名称(NAME1)样张:其它内容:权限控制在单一角色控制中查询ZR_FI_048的权限,如有此权限可查询组织结构值为D300的报表;在单一角色控制中查询ZR_FI_049的权限,如有此权限可查询组织结构值为D310的报表。

第III部分:技术说明ProgramnameZ_FI_EXEC_YSYF_AGETransactioncodeZFI013AuthorizationObjectZR_FI_048\ZR_FI_049FormFormnameN/AOutputtypeN/AFormroutineN/A程序逻辑:程序逻辑说明及程序逻辑图选择屏幕如下:代码逻辑从BSID\BSAD\BSIK\BSOK这四个表中取出相应的应收应付账款金额数据,再对取出的数据进行相应的处理,程序的主要框架如下:INITIALIZATION.

"定义ALV的布局规范

gs_layout-zebra

=

'X'.

gs_layout-colwidth_optimize

=

'X'.

gs_layout-detail_popup

=

'X'.

gs_layout-get_selinfos

=

'X'.

gs_layout-get_selinfos

=

'X'.

AT

SELECTION-SCREEN.

IF

p_yf

=

'X'

OR

p_yfgr

=

'X'.

PERFORM

frm_check_input.

"检查权限

ENDIF.

AT

SELECTION-SCREEN

ON

RADIOBUTTON

GROUP

ra1.

PERFORM

frm_must_check.

"判断哪些字段为必输

**

*

START-OF-SELECTION

*

**

START-OF-SELECTION.

PERFORM

frm_calu_days."计算相应的天数

PERFORM

frm_getdata.

PERFORM

frm_showalv.FRM_CHECK_INPUT:用来检查输入数据的合法性,要求应付账款(供应商)的选择界面输入供应商的代码,应付账款(个人)的选择界面输入相应个人的代码;DATA:

BEGIN

OF

lt_lifnr

OCCURS

0,

lifnr

TYPE

lifnr,

ktokk

TYPE

ktokk,

END

OF

lt_lifnr.

IF

p_yf

=

'X'.

IF

s_lifnr

<>

''.

SELECT

lifnr

ktokk

INTO

TABLE

lt_lifnr

FROM

lfa1

WHERE

lifnr

IN

s_lifnr.

READ

TABLE

lt_lifnr

WITH

KEY

ktokk

=

'Z900'.

IF

sy-subrc

=

0.

MESSAGE

e003(z_1)

WITH

lt_lifnr-lifnr

'在账户组Z900中,请重新输入'.

ENDIF.

ENDIF.

IF

p_yfgr

=

'X'.

IF

s_person

IS

NOT

INITIAL.

SELECT

lifnr

ktokk

INTO

TABLE

lt_lifnr

FROM

lfa1

WHERE

lifnr

IN

s_person.

LOOP

AT

lt_lifnr

WHERE

ktokk

<>

'Z900'.

MESSAGE

e003(z_1)

WITH

lt_lifnr-lifnr

'在账户组不Z900中,请重新输入'.

ENDLOOP.

ENDIF.

ENDIF.

ENDIF.其中frm_calu_days是计算相应的账龄日期,计算出距离选择屏幕过账日期为30天、60天、90天、180天、365天、2年、3年、5年的日期,根据计算出来的日期,再将相应的数据存放在相应账龄的位置。Frm_getdata这个数据主要逻辑是,根据用户所选择单选按扭是应收客户还是应付个人或者应付供应商,来分别进行取数逻辑判断;如果是应付供应商的话,从bsik和BSAK中取出相应的供应商应付账款的会计科目,同时内连接faglflexa取出利润中心及相应凭证行项目的金额,都存放在GT_BSID的内表当中去;如果是应付个人,也是从从bsik和BSAK中取出相应的个人应付账款的会计科目,同时内连接faglflexa取出利润中心及相应凭证行项目的金额,都存放在GT_BSID的内表当中去;如果是应收客户的话,就从BSID和BSAD的两个表中取出相应应收客户的相应数据,同时内连接faglflexa取出利润中心及相应凭证行项目的金额,都存放在GT_BSID的内表当中去;

IF

p_ys

=

'X'.

SELECT

a~belnr"凭证号

a~buzei"行项目

kunnr

"客户号

hkont

"科目号

b~prctr

shkzg

"借贷标识

b~hsl

AS

dmbtr

"金额

zfbdt

zbd1t

FROM

bsid

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

INTO

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

kunnr

IN

s_kunnr

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat.

SELECT

a~belnr"凭证号

a~buzei"行项目

kunnr

"客户号

hkont

"科目号

b~prctr

shkzg

"借贷标识

b~hsl

AS

dmbtr

zfbdt

zbd1t

FROM

bsad

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

APPENDING

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

kunnr

IN

s_kunnr

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat

AND

augdt

>=

p_budat.

ENDIF.

IF

p_yf

=

'X'.

SELECT

a~belnr"凭证号

a~buzei"行项目

a~lifnr

AS

kunnr

"客户号

hkont

"科目号

b~prctr

shkzg

"借贷标识

hsl

AS

dmbtr

"金额

zfbdt

zbd1t

c~name1

FROM

bsik

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

INNER

JOIN

lfa1

AS

c

ON

c~lifnr

=

a~lifnr

INTO

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

a~lifnr

IN

s_lifnr

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat

AND

c~ktokk

<>

'Z900'.

SELECT

a~belnr"凭证号

a~buzei"行项目

a~lifnr

AS

kunnr

hkont

"科目号

b~prctr

shkzg

"借贷标识

b~hsl

AS

dmbtr

zfbdt

zbd1t

c~name1

FROM

bsak

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

INNER

JOIN

lfa1

AS

c

ON

c~lifnr

=

a~lifnr

APPENDING

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

a~lifnr

IN

s_lifnr

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat

AND

augdt

>=

p_budat

AND

umskz

<>

'F'

AND

c~ktokk

<>

'Z900'.

ENDIF.

IF

p_yfgr

=

'X'.

SELECT

a~belnr"凭证号

a~buzei"行项目

a~lifnr

AS

kunnr

hkont

"科目号

b~prctr

shkzg

"借贷标识

b~hsl

AS

dmbtr

zfbdt

zbd1t

c~name1

FROM

bsik

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

INNER

JOIN

lfa1

AS

c

ON

c~lifnr

=

a~lifnr

INTO

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

a~lifnr

IN

s_person

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat

AND

c~ktokk

=

'Z900'.

SELECT

a~belnr"凭证号

a~buzei"行项目

a~lifnr

"客户号

hkont

"科目号

b~prctr

shkzg

"借贷标识

b~hsl

AS

dmbtr

zfbdt

zbd1t

c~name1

FROM

bsak

AS

a

INNER

JOIN

faglflexa

AS

b

ON

b~ryear

=

a~gjahr

AND

b~rbukrs

=

a~bukrs

AND

b~belnr

=

a~belnr

AND

b~buzei

=

a~buzei

INNER

JOIN

lfa1

AS

c

ON

c~lifnr

=

a~lifnr

APPENDING

TABLE

gt_bsid

WHERE

bukrs

=

p_bukrs

AND

a~lifnr

IN

s_person

AND

hkont

IN

s_hkont

AND

a~budat

<=

p_budat

AND

augdt

>=

p_budat

AND

umskz

<>

'F'

AND

c~ktokk

=

'Z900'.

ENDIF.得到相应的会计凭证对应的金额后,然后再根据过账日期,计算得出该笔账款的账龄,将相应的数据存在相应账龄的列中,其中计算应付客户账款时,在累加结果之间,乘以一个副1.其中代码如下:LOOP

AT

gt_bsid

INTO

gs_bsid.

CLEAR

gs_out.

gs_out-hkont

=

gs_bsid-hkont

.

gs_out-prctr

=

gs_bsid-prctr.

lv_days

=

gs_bsid-zfbdt

+

gs_bsid-zbd1t.

*

lv_bj

=

p_budat

-

68

+

1.

"末清数据

IF

lv_days

>=

p_budat.

IF

gs_bsid-shkzg

=

'S'.

gs_out-wq

=

gs_out-wq

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-wq

=

gs_out-wq

+

gs_bsid-dmbtr.

ENDIF.

"0-30天

ELSEIF

gv_30

<

lv_days

AND

lv_days

<=

p_budat.

IF

gs_bsid-shkzg

=

'S'.

gs_out-30d

=

gs_out-30d

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-30d

=

gs_out-30d

+

gs_bsid-dmbtr.

ENDIF.

"31-60天

ELSEIF

gv_60

<

lv_days

AND

lv_days

<=

gv_30.

IF

gs_bsid-shkzg

=

'S'.

gs_out-60d

=

gs_out-60d

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-60d

=

gs_out-60d

+

gs_bsid-dmbtr.

ENDIF.

"61-90

ELSEIF

gv_90

<

lv_days

AND

lv_days

<=

gv_60.

IF

gs_bsid-shkzg

=

'S'.

gs_out-90d

=

gs_out-90d

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-90d

=

gs_out-90d

+

gs_bsid-dmbtr.

ENDIF.

"91-180

ELSEIF

gv_180

<

lv_days

AND

lv_days

<=

gv_90.

IF

gs_bsid-shkzg

=

'S'.

gs_out-180d

=

gs_out-180d

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-180d

=

gs_out-180d

+

gs_bsid-dmbtr.

ENDIF.

"180-365

ELSEIF

gv_365

<

lv_days

AND

lv_days

<=

gv_180.

IF

gs_bsid-shkzg

=

'S'.

gs_out-365d

=

gs_out-365d

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-365d

=

gs_out-365d

+

gs_bsid-dmbtr.

ENDIF.

"1-2年

ELSEIF

gv_2y

<

lv_days

AND

lv_days

<=

gv_365.

IF

gs_bsid-shkzg

=

'S'.

gs_out-2y

=

gs_out-2y

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-2y

=

gs_out-2y

+

gs_bsid-dmbtr.

ENDIF.

"2-3年

ELSEIF

gv_3y

<

lv_days

AND

lv_days

<=

gv_2y.

IF

gs_bsid-shkzg

=

'S'.

gs_out-3y

=

gs_out-3y

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-3y

=

gs_out-3y

+

gs_bsid-dmbtr.

ENDIF.

"3-5年

ELSEIF

gv_5y

<

lv_days

AND

lv_days

<=

gv_3y.

IF

gs_bsid-shkzg

=

'S'.

gs_out-5y

=

gs_out-5y

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-5y

=

gs_out-5y

+

gs_bsid-dmbtr.

ENDIF.

"5年以上

ELSE.

IF

gs_bsid-shkzg

=

'S'.

gs_out-5m

=

gs_out-5m

+

gs_bsid-dmbtr.

ENDIF.

IF

gs_bsid-shkzg

=

'H'.

gs_out-5m

=

gs_out-5m

+

gs_bsid-dmbtr.

ENDIF.

ENDIF.

gs_out-ye

=

gs_out-wq

+

gs_out-30d

+

gs_out-60d

+

gs_out-90d

+

gs_out-180d

+

gs_out-365d

+

gs_out-2y

+

gs_out-3y

+

gs_out-5y

+

gs_out-5m.

"根据选择是否应收还是应付来进行判断

IF

p

温馨提示

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

评论

0/150

提交评论