联芯科技ERP项目-技术文档-FICO-007-利润中心现金流量表V1.0-20090728_第1页
联芯科技ERP项目-技术文档-FICO-007-利润中心现金流量表V1.0-20090728_第2页
联芯科技ERP项目-技术文档-FICO-007-利润中心现金流量表V1.0-20090728_第3页
联芯科技ERP项目-技术文档-FICO-007-利润中心现金流量表V1.0-20090728_第4页
联芯科技ERP项目-技术文档-FICO-007-利润中心现金流量表V1.0-20090728_第5页
已阅读5页,还剩6页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGEPAGE10 DATE\@"M/d/yyyy"10/29/2009Version1.0 FILENAME联芯科技ERP项目_技术文档_FICO_007_利润中心现金流量表V1.0_20090728.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编号ZDTYD_FI007短描述利润中心现金流量表类型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肖丽华初建

第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利润中心FAGLFLEXT-PRCTR利润中心P必填默认值D3002会计期间BKPF-MONAT会计期间P必填默认上一会计期间(如当前期间为1月则默认为1月)3会计年度BKPF-GJAHR会计年度P必填默认本会计年度报表/表单的字段抬头字段/表尾字段见附加EXCEL(现金流量表样表)。顺序字段名称字段技术名称字段描述特殊需求1企业名称CEPCT-LTEXT利润中心对应的名称2年度BSIS-GJAHR取选择屏幕上的会计年度3会计期间BSIS-MONAT取选择屏幕上的会计期间格式/屏幕设计:见附件EXCEL(现金流量表样表)。逻辑关系:见下附件EXCEL(现金流量表公式).根据输入条件中的利润中心、会计年度、期间到表BSIS、BSAS中查找相应明细,比如:输入条件利润中心为JA3001,会计年度为2009,期间为06,,则到BSIS、BSAS表中找PRCTR字段为JA3001,GJAHR字段为2009,对于“本月数”,MONAT字段为06期间;对于“累计数”,取MONAT字段01-06期间,科目范围(字段:HKONT)均为1001000000-1001999999,1002000000-1002999999,1012000000-1012999999的所有明细;以上一步找到的所有明细记录中BELNR(财务凭证编号)字段为关键值,到BSEG表中取BELNR(财务凭证编号)字段相同的明细数据;按照RSTGR(原因代码)字段,对现金流入类的各个原因代码用借方(S)本位币金额(DMBTR字段)合计减去贷方(H)本位币金额(DMBTR字段)的合计差额列示;对现金流出类的各个原因代码用贷方(H)本位币金额(DMBTR字段)合计减去借方(S)本位币金额(DMBTR字段)的合计差额列示;第39至40行均需到FAGLFLEXT表中取出会计科目为1001*、1002*、1012*的数值。以当前期间为6月为例,39行第一列需根据输入条件中的利润中心、会计年度、记帐期间去FAGLFLEXT表中的HSL01字段到HSL16字段找出相应的数值并合计,做为输出格式中的期初数,比如:现出具6月现金流量表,则在FAGLFLEXT表中的HSL01字段到HSL05字段找出相应的数值合计再加上FAGLFLEXT表中HSLVT字段取出的数值;第39行第二列则取HSLVT字段做为输出格式中的期初数。当输入条件利润中心为“PT3001”时,报表数据取值包含“PT3001”和“GG3001”;当输入条件利润中心为“PT3101”时,报表数据取值包含“PT3101”和“GG3101”。报表中各单元格的对应的原因代码及计算公式见下方样张。备注:可根据输入的“产品线”条件调用函数K_PRCTR_VALUES_GET(输入:利润中心组、利润中心范围;输出:利润中心)得到最终需要的利润中心,此字段对应到FAGLFLEXT中的PRCTR字段。样张:其它内容:对报表/单据的其它功能进行描述*注:删除上面不适用的行和注释行.

第III部分:技术说明ProgramnameZ_FI_EXEC_CASH_FLOW_PCTransactioncodeZFI007AuthorizationObjectZR_FI_050ZR_FI_051FormFormnameN/AOutputtypeN/AFormroutineN/A程序逻辑:程序逻辑说明及程序逻辑图点击执行后,选择下载路径后,系统会自动下载EXECLE文件到本地。利润表,首先通过在ATSELECTION-SCREEN事件中调用

PERFORM

authority_check

.进行判断执行用户是否ZRFIZR_FI_050、ZR_FI_051这两个角色来查看相关公司代码、利润中心的权限,如果有则执行,没有则报错。然后在data_get这个子过程中从数据库当中取出相应数据,放入相应的结构体当中,存放所选期间的财务数据,然后再CASE屏幕上输入的期间,来判断调用哪个月份的子过程,如1月份调用p_billing_1,2月调用p_billing_2.将数据处理完毕后,再将要放入EXECLE文件的数据存放在t_exceldata这个内表中,t_exceldata这个内表存放了要放入EXECLE文件数据的行、列、数据;通过调用自定义的FUNCTION,ZD_EXCEL_OUTPUT来实现下载EXECL文件的功能;选择屏幕的利润中心、利润中心组只能同时选一个,在选择利润中心组后通过frm_get_prctr得到所有要汇总的利润中心;在汇总数据时,要减去内部订单为6666010102的发生额,在相应的行项目信息中根据FS减去;另外关于有些行项目是通过其它行项目累加的,则是通过在EXLECL模版里实现的,而没有在系统代码里实现;**

*

程序的事务代码:

ZFI007

*

程序名称:

Z_FI_EXEC_CASH_FLOW

*

作者

:

NEUSOFT(LITENGFEI)

*

时间

:

2009-07-29

*

模块

:

FI

*

负责人

:

肖利华

*

描述

:

利润中心现金流量表

*

特殊特性:

*

需求编号:

FI007

**

*

修改记录:

*作者

时间

描述

*

*

*李腾飞

20090729

创建

**

REPORT

z_fi_exec_cash_flow_pc

NO

STANDARD

PAGE

HEADING

MESSAGE-ID

z_1.

INCLUDE

zd_fifm003_head_pc.

"报表头文件

TABLES:

faglflext.

*SELECTION-SCREEN

BEGIN

OF

BLOCK

block1

WITH

FRAME

TITLE

title1.

"选择屏幕定义

*SELECT-OPTIONS:

code

FOR

faglflext-prctr

."OBLIGATORY

.

"利润中心默认D200

*PARAMETERS:

p_name

TYPE

setleaf-setname.

*PARAMETERS:

billing

LIKE

bkpf-monat

OBLIGATORY

DEFAULT

sy-datum+4(2)."会计期间

*PARAMETERS:

year

LIKE

bkpf-gjahr

OBLIGATORY

DEFAULT

sy-datum+0(4)."会计年度

*SELECTION-SCREEN

END

OF

BLOCK

block1.

SELECTION-SCREEN

BEGIN

OF

BLOCK

block1

WITH

FRAME

TITLE

title1.

"OBLIGATORY

.

"利润中心默认D200

SELECTION-SCREEN

BEGIN

OF

LINE

.

PARAMETERS

gp_x

RADIOBUTTON

GROUP

ra1

DEFAULT

'X'

USER-COMMAND

radbtn.

SELECTION-SCREEN

COMMENT

4(20)

text-001

."FOR

FIELD

gp_gjarh.

SELECTION-SCREEN

POSITION

POS_LOW.

SELECT-OPTIONS:

code

FOR

faglflext-prctr

MODIF

ID

sc1.

SELECTION-SCREEN

END

OF

LINE.

SELECTION-SCREEN

BEGIN

OF

LINE.

PARAMETERS:

gp_y

RADIOBUTTON

GROUP

ra1

.

SELECTION-SCREEN

COMMENT

4(31)

text-002.

PARAMETERS:

p_name

TYPE

setleaf-setname

MODIF

ID

sc2

.

SELECTION-SCREEN

END

OF

LINE.

SELECTION-SCREEN

END

OF

BLOCK

block1.

SELECTION-SCREEN

BEGIN

OF

BLOCK

block2

WITH

FRAME

TITLE

text-003.

PARAMETERS:

billing

LIKE

bkpf-monat

OBLIGATORY

DEFAULT

sy-datum+4(2)."会计期间

PARAMETERS:

year

LIKE

bkpf-gjahr

OBLIGATORY

DEFAULT

sy-datum+0(4)."会计年度

SELECTION-SCREEN

END

OF

BLOCK

block2.

INITIALIZATION.

"表头定义

title1

=

'利润中心现金流量表'.

**

*

AT

SELECTION-SCREEN

*

**

AT

SELECTION-SCREEN

ON

VALUE-REQUEST

FOR

p_name.

PERFORM

get_search_help

.

AT

SELECTION-SCREEN.

IF

code

IS

NOT

INITIAL

AND

p_name

IS

NOT

INITIAL.

MESSAGE

e003(z_1)

WITH

'利润中心组与利润中心不能同时输入'.

ENDIF.

PERFORM

frm_get_prctr.

"得到利润中心

START-OF-SELECTION.

PERFORM

frm_authority_check.

PERFORM

get_data."读取数据

PERFORM

frm_get_title."得到利润中心、利润中心组描述

PERFORM

cal_data_faglflext."生成数据

PERFORM

cal_data_deal.

"数据处理

PERFORM

call_function_output."调用报表输出函数。

END-OF-SELECTION.

INCLUDE

zd_fifm003_get_dataf01_pc.

INCLUDE

zd_fifm003_cal_data_faf01_pc.

INCLUDE

zd_fifm003_cal_data_dealf01_pc.

*&*

*&

Form

CALL_FUNCTION_OUTPUT

*&*

*

text

**

*

-->

p1

text

*

<--

p2

text

**

FORM

call_function_output

.

LOOP

AT

t_exceldata

INTO

wa_exceldata

WHERE

row

<>

2

.

CONDENSE

wa_exceldata-value.

*

IF

wa_exceldata-value

<

0.

CALL

FUNCTION

'CLOI_PUT_SIGN_IN_FRONT'

CHANGING

value

=

wa_exceldata-value.

MODIFY

t_exceldata

FROM

wa_exceldata.

*

ENDIF.

ENDLOOP.

CALL

FUNCTION

'ZD_EXCEL_OUTPUT'

EXPORTING

excel_template

=

c_exceltemplate

macro

=

'WRITE_CELL'

exit_program

=

sy-repid

p_xsht

=

'利润中心现金流量表'

*

exit_subroutine

=

'SUB_ADDITION_EXCEL'

TABLES

data_source

=

t_exceldata.

ENDFORM.

"

CALL_FUNCTION_OUTPUT

*&*

*&

Form

GET_SEARCH_HELP

*&*

*

search

help

**

*

-->

p1

text

*

<--

p2

text

**

FORM

get_search_help

.

TYPES:BEGIN

OF

ty_help,

setname

TYPE

setleaf-setname,

descript

TYPE

settext,

END

OF

ty_help.

DATA:lt_help

TYPE

TABLE

OF

ty_help.

DATA:l_repid

TYPE

sy-repid,

l_dynnr

TYPE

sy-dynnr.

*选取数据

SELECT

a~setname

b~descript

INTO

TABLE

lt_help

FROM

setleaf

AS

a

INNER

JOIN

setheadert

AS

b

ON

b~setclass

=

a~setclass

AND

b~subclass

=

a~subclass

AND

b~setname

=

a~setname

WHERE

a~setclass

=

'0106'

AND

a~subclass

=

'DTDX'

AND

b~langu

=

sy-langu.

DELETE

ADJACENT

DUPLICATES

FROM

lt_help

COMPARING

ALL

FIELDS.

*定制SEARCH

HELP

l_repid

=

sy-repid.

l_dynnr

=

'1000'.

CALL

FUNCTION

'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield

=

'SETNAME'

dynpprog

=

l_repid

dynpnr

=

l_dynnr

dynprofield

=

'P_NAME'

value_org

=

'S'

TABLES

value_tab

=

lt_help

EXCEPTIONS

parameter_error

=

1

no_values_found

=

2

OTHERS

=

3.

IF

sy-subrc

<>

0.

MESSAGE

ID

sy-msgid

TYPE

sy-msgty

NUMBER

sy-msgno

WITH

sy-msgv1

sy-msgv2

sy-msgv3

sy-msgv4.

ENDIF.

ENDFORM.

"

GET_SEARCH_HELP

*&*

*&

Form

FRM_GET_TITLE

*&*

*

text

**

*

-->

p1

text

*

<--

p2

text

**

FORM

frm_get_title

.

IF

gp_x

=

'X'.

DATA:

BEGIN

OF

lt_ltext

OCCURS

0,

ltext

LIKE

cepct-ltext,

END

OF

lt_ltext.

SELECT

ltext

INTO

TABLE

lt_ltext

FROM

cepct

"取公司名称

WHERE

spras

=

sy-langu

AND

prctr

IN

code

AND

datbi

>

lv_data

AND

kokrs

=

'DTDX'.

LOOP

AT

lt_ltext.

CONCATENATE

company_name

'/'

lt_ltext-ltext

INTO

company_name.

ENDLOOP.

CONCATENATE

'利润中心名称:'

company_name

INTO

c_company_name.

"拼写报表中利润中心名称

ELSEIF

gp_y

=

'X'.

SELECT

SINGLE

descript

INTO

company_name

FROM

setheadert

WHERE

setclass

=

'0106'

AND

subclass

=

'DTDX'

AND

langu

=

sy-langu.

CONCATENATE

'利润中心组名称:'

company_name

INTO

c_company_name.

"拼写报表中利润中心名称

ENDIF.

CONCATENATE

year

'年'

billing

'月'

INTO

c_rpt_date

SEPARATED

BY

space."拼写报表中统计期间

ENDFORM.

"

FRM_GET_TITLE

*&*

*&

Form

FRM_AUTHORITY_CHECK

*&*

*

text

**

*

-->

p1

text

*

<--

p2

text

**

FORM

frm_authority_check

.

*从数据库选取利润中心

SELECT

prctr

INTO

TABLE

gt_center1

FROM

cepct

"取利润中心

WHERE

prctr

IN

code.

*删除重复的利润中心

DELETE

ADJACENT

DUPLICATES

FROM

gt_center1

COMPARING

ALL

FIELDS.

TABLES:

agr_users.

TYPES:

BEGIN

OF

ty_agr_name,

agr_name

LIKE

agr_users-agr_name,

END

OF

ty_agr_name.

DATA:

lt_agr_name

TYPE

TABLE

OF

ty_agr_name,

ls_agr_name

TYPE

ty_agr_name.

DATA:

l_line

TYPE

i.

SELECT

agr_name

INTO

TABLE

lt_agr_name

FROM

agr_users

WHERE

agr_name

IN

('ZR_FI_050','ZR_FI_051')

AND

uname

=

sy-uname.

DESCRIBE

TABLE

lt_agr_name

LINES

l_line.

IF

l_line

=

1.

READ

TABLE

lt_agr_name

INTO

ls_agr_name

WITH

KEY

agr_name

=

'ZR_FI_050'

.

IF

sy-subrc

=

0.

LOOP

AT

gt_center1

INTO

gs_center.

IF

gs_center-prctr

=

'GG3001'

OR

gs_center-prctr

=

'JA3001'

OR

gs_center-prctr

=

'JL3001'

OR

gs_center-prctr

=

'ZD3001'

OR

gs_center-prctr

=

'ZD3002'

OR

gs_center-prctr

=

'ZD3003'

OR

gs_center-prctr

=

'ZD3004'

OR

gs_center-prctr

=

'DUMMY'

OR

gs_center-prctr

=

'PT3001'

OR

gs_center-prctr

=

'YA3001'

OR

gs_center-prctr

=

'YX3001'.

ELSE.

MESSAGE

i002(z_1)

WITH

'没有权限进行查看'.

LEAVE

LIST-PROCESSING.

ENDIF.

CLEAR:gs_center.

ENDLOOP.

ENDIF.

CLEAR

ls_agr_name.

READ

TABLE

lt_agr_name

INTO

ls_agr_name

WITH

KEY

agr_name

=

'ZR_FI_051'

.

IF

sy-subrc

=

0.

LOOP

AT

gt_center1

INTO

gs_center.

IF

gs_center-prctr

=

'GG3101'

OR

gs_center-prctr

=

'JL3101'

OR

gs_center-prctr

=

'PT3101'

OR

gs_center-prctr

=

'DUMMY'.

ELSE.

MESSAGE

i002(z_1)

WITH

'没有权限进行查看'.

LEAVE

LIST-PROCESSING.

ENDIF.

CLEAR:gs_center.

ENDLOOP.

ENDIF.

ELSEIF

l_line

=

0

.

MESSAGE

i002(z_1)

WITH

'没有权限进行查看'.

LEA

温馨提示

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

评论

0/150

提交评论