EAS分析报表框架手册.docx

上传人:b****6 文档编号:7700635 上传时间:2023-01-25 格式:DOCX 页数:22 大小:626.52KB
下载 相关 举报
EAS分析报表框架手册.docx_第1页
第1页 / 共22页
EAS分析报表框架手册.docx_第2页
第2页 / 共22页
EAS分析报表框架手册.docx_第3页
第3页 / 共22页
EAS分析报表框架手册.docx_第4页
第4页 / 共22页
EAS分析报表框架手册.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

EAS分析报表框架手册.docx

《EAS分析报表框架手册.docx》由会员分享,可在线阅读,更多相关《EAS分析报表框架手册.docx(22页珍藏版)》请在冰豆网上搜索。

EAS分析报表框架手册.docx

EAS分析报表框架手册

EAS分析报表框架手册

通过阅读本手册,您将

Ø了解分析报表及资源信息

Ø快速地使用分析报表进行开发

Ø思考现有的报表以及这个框架哪些地方可以改进?

 

第1章简介

本章是对分析报表框架的总述。

1.1概述

EAS分析报表框架(BIReport)一套分析报表基础组件,它做了大部分非具体业务的工作,如查询方案/打印/临时表/维表操作等,使开发人员能把精力更多地投入到业务相关的开发工作中。

开发人员可通过继承、引用相关组件快速完成分析报表的开发。

1.2分析报表功能

1.下面功能均可在表格上操作:

1.数据下钻、上卷;

2.选择显示、隐藏指定的行与列;

3.自定义计算列;

4.维度行列任意顺序排列;

5.数据排序;

6.数据过滤。

2.图形功能:

1.显示缺省图形:

显示表格的全部数据;

2.自定义图形:

由开发人员写代码实现,显示表格部分数据,并作某些加工;

3.图形分析:

由用户自行选择数据显示为图形。

3.打印:

图表可一起打印

4.发布:

支持以excel/html格式发布到Portal或发送到mail

1.3分析报表开发

1.设计界面:

设计UI及Façade元数据;

2.配置维度(xml文件);

3.编写代码,主要工作:

服务端准备数据――写在ControllerBean中,每一维度对应一个sql语句。

其余的均由框架实现,只需写好框架需要的接口方法。

配置文件例子:

1.4EAS使用案例

1.4.1资金管理分析报表

包括资金结算、投融资管理等业务模块的汇总表与分析表。

1.4.2预算分析报表

1.4.3管理会计资金分析报表

1.5各功能界面预览

以下是分析报表的界面示例:

1.5.1主页面

1.5.2图形分析

1.5.3排序

1.5.4筛选(过滤)

1.5.5维度浏览

1.5.6报表发布

第2章开发流程

2.1框架描述

2.1.1组成

1.框架元数据:

Ø主界面UI:

com.kingdee.eas.framework.bireport.client.BireportBaseMainUI.ui

Ø条件界面UI:

com.kingdee.eas.framework.bireport.client.BireportBaseFilterUI.ui

ØFaçade功能对象:

com.kingdee.eas.framework.bireport.app.BireportBaseFacade.facade

2.维度配置文件:

xml文件,放在与app/client同级的config目录下。

3.相关组件及辅助类。

4.示例:

com.kingdee.eas.framework.bireport.app.BireportSample

2.1.2类图

2.2步骤概述

2.2.1元数据设计

Ø设计主界面UI继承BireportBaseMainUI,根据业务设计界面,要求至少有一个显示数据的KDTable。

Ø设计条件界面UI继承BireportBaseFilterUI,根据业务设计界面。

Ø设计功能对象继承BireportBaseFacade,通常不再需要添加接口,除非业务上自身的要求。

注意界面规范:

边界10px,组件间3px,详见http:

//uiserver/

2.2.2发布补全代码

Ø发布元数据,对编译警告的选择添加未实现的方法(Eclipse开发环境)。

Ø根据超类注释完成自动添加的未实现代码,可参考示例。

ØFaçade生成的ControllerBean通常要重载_init和readySchemaSource两个方法,分别用于初始化条件查询数据和准备主页面的维度数据。

2.2.3配置维度文件

config目录下新建维度配置文件(xml格式,具体参考相关文档),根据具体要求设计维度。

2.2.4编写业务相关代码

通常包括

1.处理查询条件:

初始化设置、方案存取等;

2.主页面:

小标题、打印格式、打印变量、自定义图形等;

3.ControllerBean准备数据。

2.3时序图

 

第3章维度配置文件

3.1多语言

目前支持两种实现方式

Ø单配置文件:

里面使用属性、变量来实现多语言。

Ø多配置文件,每种语言用一个文件,只需要写原始一份,通过插件将生成3份文件。

3.2资源属性、变量

3.2.1使用资源属性

文件中指定BOS的资源对象名全路径:

定义属性,格式为#{varname}

如上图例,则框架解析此文件时,将获取MacroReplacer.resource的bank属性替换#{bank}。

3.2.2使用变量

有两种写法,

Ø在tag属性值里,用${varname}

Ø在tag外面,用,用于需要动态变动xml结构的情况。

服务端用SchemaSource#setMacroValue(Stringkey,Stringvalue)方法设置变量。

3.3Schema翻译插件

Schema文件翻译插件KingdeeToolkit_1.0.0.jar,获取地址见后面的相关资源vss.

[使用方法]

如下图,将生成3个xml文件:

schema_L1.xml英文(需手工翻译里面的多语言属性)

schema_L2.xml简体中文

schema_L3.xml繁体中文

此插件还提供属性文件的翻译,在形如*_.properties的文件上右键菜单可见:

3.4权限配置

权限分数据(成员)权限、字段(度量)权限两种,数据权限施加于维度,字段权限施加于度量。

使用了本方法设置权限,若以前中有手工增加过数据权限过虑的代码(使用com.kingdee.eas.base.permission.IPermission产生过虑SQL),应去除去,避免重复过虑影响效率。

开发人员需要做两个部分:

1)BOS中定义权限元数据,发布;

2)维度配置文件指定关联的权限项,配置如下图:

Permission下可以有多个Item,Item之间是“和”关系。

3.4.1成员权限

1.在BOS中定义元数据,要绑定维度查询的表――eas中对应实体,参考BOS开发帮助文档。

2.xml文件中配置权限项(使用上步骤定义的权限名称)。

◆Permissiontype指定为EAS;

◆Itemtype指定为SQL_FILTER;

◆name,权限元数据名称;

◆column,与权限关联的字段。

如下图种表示用Currency维度的SQL中的FID字段来关联权限项生成的SQL。

EAS中数据授权示例,以administrator,对选中某一用户授数据权限,若新增的权限项不存在,请先在主页面菜单中点击同步权限项:

规则维护

屏蔽人民币(此是示例,实际中不应引用基础资料的权限,而是新建权限项,绑定币别):

3.4.2度量权限

1)设计权限元数据(无需绑定任何数据,只是功能权限—是/否)

2)配置文件增加权限关联,

◆Permissiontype指定为EAS;

◆Itemtype指定为BOOLEAN;

◆name,关联的权限项名称。

EAS中授功能权限(有/无权限)示例:

EAS中打开报表,如果所有度量都没权限访问,则表格显示为空,并提示以下信息:

第4章使用图形

4.1效果示例

4.2使用方法

代码只需要在RptXXXMainUI里添加

1.增加缺省图片

setShowDefaultChart(boolean)是否显示缺省图片(整个表数据对应的图片),在onBeforeQuery()中调用.

addDefaultChart()显示缺省图片,在onAfterQuery()中调用,与setShowDefaultChart结合可按维度需求实现是否需要缺省图片.

2.增加自定义图片

在onAfterQuery()中编写代码,如

显示饼图:

期末数各公司(银行--DyTable)的比例

this.addChart().setTitle("期末公司信用证结构分析")

.setChartType(ChartType.CT_MULTIPIE)

.addShowMember("PeriodType","期末数")

.addShowMember("RegionType","小计")

.addShowMember("Measures","比例")

.addNotShowMember("DyTable","合计")

.setReverse(true)

.finishDataSet();

显示例图:

 

代码说明:

addShowMember:

设置需要显示图片的成员数据,第一个参数为维度名称,第二个参数是成员名称,均不区分大小写.维度名与成员名需与mdx语句中的命名对应

addNotShowMember:

设置不需要显示的成员.

注意:

在同一维度上,不能同时设置addShowMember/addNotShowMember,只设置”显示”成员,则其它成员(在图片上)不显示,只设置”不显示”成员,则其它成员默认显示.

setReverse(boolean):

表示图形是否显示为当前行列交换后的图形(但表的显示是不需要交换的)

finishDataSet():

表示图片数据设置结束(必须调用且在最后)

参考代码:

com.kingdee.eas.fm.fin.client.RptLCFrameAnalysisMainUI

第5章脚本语言

5.1概述

用户与开发人员都将会用到脚本,犹如office需要vba,分析报表将使用MiniScript脚本语言,以满足灵活性的需求。

5.2扩展业务脚本

(未实现…待续)

第6章其它

6.1临时表的处理

com.kingdee.eas.fm.birt.app.BirtBaseFacadeControllerBean提供,建议不要自己写创建/删除临时表的sql,因为临时表处理EAS系统有专门的管理:

Ø获取临时表名:

getTempTableName

Ø使用select…into…创建临时表及数据

executeSelectInto

Ø释放临时表

dropTempTable

6.2SQL执行接口

com.kingdee.eas.fm.birt.app.BirtBaseFacadeControllerBean提供:

_executeQuery

_executeUpdate

6.3打印

Ø设置打印表头格式方法

protectedvoidpreparePrintPageHeader(HeadFootModelheader)

Ø返回打印表头变量方法

protectedMappreparePrintVariantMap()

6.4辅助类的使用

1.条件自动存储类

RptConditionManager

一般用法

//条件页面:

获取条件

publicRptParamsgetCustomCondition(){

RptConditionManagerrm=newRptConditionManager();

rm.recordAllStatus(this);

returnrm.toRptParams();

}

//设置条件

publicvoidsetCustomCondition(RptParamsparams){

RptConditionManagerrm=newRptConditionManager(params);

rm.restoreAllStatus(this);

}

[注]用最新的CustomerParams参数的接口,若要条件支持版本升级,则本辅助类无效,请自行处理。

框架默认转调最新接口到setCustomCondition(RptParamsparams)与RptParamsgetCustomCondition(),即使用此两方法仍可用非字符窜对象作为条件,但条件方案相关类被修改(客户升级)后可能报版本不一致错误。

自动存储的条件获取方法

RptParams.getObjectElement("name.value");

name为条件相应控件的名称,getObjectElement方法可以用属性来访问其中的对象,如,name.value为com.kingdee.eas.framework.DataBaseInfo对象,取其编码:

RptParams.getObjectElement("name.value.number");

扩展用法示例

publicRptParamsgetCustomCondition(){

RptConditionManagerrm=newRptConditionManager();

rm.recordAllStatus(this);

rm.setProperty("companyIdSet",companyIdSet);

bankIdSet=AccessHelper.getIds(AccessHelper.getF7Ids(jbpBank));

rm.setProperty("bankIdSet",bankIdSet);

currencyIdSet=AccessHelper.getIds(AccessHelper.getF7Ids(jbpCurrency));

rm.setProperty("currencyIdSet",currencyIdSet);

returnrm.toRptParams();

}

publicvoidsetCustomCondition(RptParamsparams){

RptConditionManagerrm=newRptConditionManager(params);

rm.restoreAllStatus(this);

companyIdSet=(Set)params.getObject("companyIdSet");

try{

bankIdSet=(Set)params.getObject("bankIdSet");

CoreBaseInfo[]c=RptIvtClientUtil.getBaseInfoFromIdSet(bankIdSet);

this.jbpBank.setData(c);

currencyIdSet=(Set)params.getObject("currencyIdSet");

CoreBaseInfo[]cc=RptIvtClientUtil.getBaseInfoFromIdSet(currencyIdSet);

this.jbpCurrency.setData(cc);

}catch(Exceptione){

this.handUIException(e);

}

}

2.SqlParams的使用

3.与PreparedStatement使用方法类似,较之更简洁方便。

作为SQL执行接口的参数。

4.调试用:

SqlParams.sql(…)即可得到完整(不带?

参数)的sql。

第7章相关资源

7.1其它资源

1.VSS:

\\192.168.16.5$/2EASV5.1/7控件/7.1报表服务开发项目/用户手册/BI

2.MDX测试环境:

MDX查询分析器

7.2商业分析组

EAS产品事业部->技术平台部->控件开发部->商业分析组,分机:

8019。

成员:

林志贤、郑政芳、郑学明。

欢迎任何形式的交流。

修订记录

作者

时间

说明

郑政芳

2006-03-21

初稿

郑政芳

2006-06-20

增加分析图形

郑政芳

2006-12-01

增加对多语言的支持

郑政芳

2007-05-16

增加对权限的支持

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1