EAS合并报表数据分析参考教案资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EAS合并报表数据分析参考
金蝶软件合肥分公司
LE开发部杨剑
2010年9月1日
1文档说明
本文档分析结果基于金蝶EAS6.0,是对EAS6.0中的合并报表的数据结构进行分析,分析结果主要是用于BI系统从EAS合并报表中获取数据,对于其他类似场合也具有参考意义。
2合并报表相关的基本概念
2.1合并报表的存储架构
EAS中的合并报表基本表是:t_csl_cslreport,在客户端打开一张合并报表可以看到,是一个类似Excel的表格,这张表格是以BLOB形式整个保存在FDATA字段中;另外为了统计分析的需要,EAS同时把表格中具有项目公式的数据,提取出来存储在另外一套数据表中,也就是下面我们要分析的数据表。
2.2合并范围
定义报表合并的类别。
功能位置:基础数据管理——组织架构——合并范围。
对应的数据库表:T_ORG_Tree
取数规则:select * from T_ORG_Tree where fstatus=1 and ftype=8
2.3合并单元
从组织的维度上定义报表合并单元和每个单元进行合并的组织。
功能位置:基础数据管理——组织架构——合并范围——序时簿按钮“合并单元”。
合并单元存储在组织单元表:T_ORG_BaseUnit,是一个在组织单元管理中不可见的虚组织。
2.4报表项目
定义合并报表中的数据计算需要用到的项目,合并报表中的数据计算、存储、分析是按照项目来进行的。
功能位置:财务会计——合并报表——系统设置——报表项目。
对应的数据库表:T_CSL_RptItem
2.5取数类型
定义报表项目的数据计算类型,例如计算报表项目的期初数、期末数、本期发生数等等。
功能位置:财务会计——合并报表——系统设置——取数类型。
对应的数据库表:T_CSL_DataElement
2.6个别报表
各个财务组织各自制作的财务报表,它们是合并报表的原始数据来源。
2.7项目公式
在报表模板上,针对单元格进行设置,形如:Item("4001",0,0,"AMOUNT","MONEY") 对于个别报表来说,项目公式并不参与计算,只是以公式的形式,描述某个单元格数值的含义,以Item("4001",0,0,"AMOUNT","MONEY")公式为例:它说明单元格里的数值的含义是编号4001报表项目的本期发生额的金额。
对于合并报表来说,为单元格设置项目公式,在合并计算时,会按照项目公式从个别报表中提取数据进行计算。
2.8合并报表
2.8.1报表查询方法
先选择合并范围:财务会计——合并报表——合并处理——合并范围选择
打开:财务会计——合并报表——合并处理——合并报表
示例:现金流量表查询结果
2.8.2报表头
描述报表的基本信息,对应的数据库表:t_csl_cslreport
关键字段描述:
ForgTreeID 合并报表所属的合并范围ID
ForgUnitID 合并报表所属的合并单元ID
FtemplateID 合并报表使用的报表模板ID
Fyear和fperiod 报表期间
2.8.3报表层(Sheet)
类似Excel表格,一个报表文件(记录)可以包含多个单张表格。
对应的数据库表:t_csl_itemdata
关键字段描述:
fReportId 所属的合并报表ID
2.8.4报表分录
在前面的现金流量表示例中观察,直观的,我们可以把报表中所有本期金额当成是一条分录,所有的本年金额是另外一条分录,而分录的字段就是一个个报表项目。
对应的数据库表:t_csl_itemdataEntry
关键字段描述:
fItemDataId 所属的Sheet ID
fDataElement 分录的取数类型,对应T_CSL_DataElement表的FinterSeq字段
2.9项目存储映射表
对应的数据库表:t_csl_itemfieldmapped,它描述的信息是:每个报表项目,在储存其报表数据时,是在哪一个数据表的哪一个字段
关键字段描述:
fItemId 报表项目ID
FtableName 报表项目的数据存储的数据表名
FFieldName 报表项目的数据存储的字段名
2.10报表分录数据表
实际储存的数据表是:T_CSL_ItemDataEntry001,T_CSL_ItemDataEntry002,T_CSL_ItemDataEntry003,这几张表的数据结构类似,如下:
关键字段描述:
FID 合并报表分录(t_csl_itemdataEntry)ID
3数据抽取
3.1定位和获取合并报表
所需参数:合并范围编码,合并单元编码,合并报表模板编码,年份,月份(期间)
SELECT ot.* FROM T_CSL_CslReport AS cr
inner join T_ORG_BaseUnit AS bu ON cr.FOrgUnitID = bu.FID
inner join T_ORG_Tree AS ot ON cr.FOrgTreeID = ot.FID
inner join T_RPT_Template AS tem ON cr.FTemplateID = tem.FID
WHERE cr.FSourceType IN (12, 3) AND cr.FAdjustStatus = 0
and ot.fnumber='01' --合并范围编码
and bu.fnumber='01.01' --合并单元编码
and tem.FNumber='HB001' --合并报表模板编码
and cr.fyear=2010 --年份
and cr.fperiod=6 --月份(期间)
3.2获取报表项目对应的存储位置
所需参数:报表项目编码
select ifm.ftablename, ifm.ffieldname
from T_CSL_RptItem ri
inner join t_csl_itemfieldmapped ifm on ifm.fitemid=ri.fid
where ri.fnumber='1005'
3.3抽取所需的数据
所需参数:合并范围编码,合并单元编码,合并报表模板编码,年份,月份(期间), 报表项目编码。代码中红色部分,是需要实际取数时,根据3.2项查询结果进行变动的
select idata.f5from (
--定位一张合并报表
SELECT cr.fid FROM T_CSL_CslReport AS cr
inner join T_ORG_BaseUnit AS bu ON cr.FOrgUnitID = bu.FID
inner join T_ORG_Tree AS ot ON cr.FOrgTreeID = ot.FID
inner join T_RPT_Template AS tem ON cr.FTemplateID = tem.FID
WHERE cr.FSourceType IN (12, 3) AND cr.FAdjustStatus = 0
and ot.fnumber='01' -- 合并范围编码
and bu.fnumber='01-01' -- 合并单元编码