金蝶EASBI报表框架使用说明

上传人:仙*** 文档编号:34038260 上传时间:2021-10-20 格式:DOC 页数:9 大小:1.96MB
返回 下载 相关 举报
金蝶EASBI报表框架使用说明_第1页
第1页 / 共9页
金蝶EASBI报表框架使用说明_第2页
第2页 / 共9页
金蝶EASBI报表框架使用说明_第3页
第3页 / 共9页
点击查看更多>>
资源描述
EAS_BI报表框架使用说明简述报表框架模块名称:fm_birt报表框架做了大部分非具体业务的工作,如查询方案/打印/临时表/维表操作等,使开发人员能把精力更多地投入到业务相关的开发工作中。BOS对象设计1. 界面设计a) 主页面继承com.kingdee.eas.fm.birt.client. BirtBaseMainUI.uib) 条件查询页面继承com.kingdee.eas.fm.birt.client.BirtBaseFilterUI.ui2. 功能对象继承 com.kingdee.eas.fm.birt.BirtBaseFacade.facade命名约定:使用加粗部分作为后缀。注意, 使用该框架的各模块最好自己加一层基类, 实现业务上的扩展. 如资金组的基类FmbiRptBaseMainUI(扩展) BirtBaseMainUI代码基本流程1-用户点击菜单进入2-客户端准备初始数据getParamsForInit(),如果返回null, 转入第4步3-服务端取初始数据init,参数为上一步getParamsForInit()返回值4-客户端条件查询设置setCustomCondition,参数为上一步init返回值5-用户点击确定查询6-调用客户端主界面query方法,查询条件在属性params里,该params是条件界面getCustomCondition()返回的.编码说明必要的重载1. UI类实现abstract方法(Eclipse里ctrl+1,选择添加未实现的方法),各方法说明可参考父类注释。2. session bean 根据需要重载父类方法,通常只需要_ini和readySchemaSource两个方法。数据准备服务端准备数据方法(重载):protected SchemaSource readySchemaSource(RptParams params, Context ctx)throws BOSException, EASBizException /返回SchemaSource对象,里面的属性均需要设置。 Schema文件及宏定义Schema配置请参考相关文档,放在config目录下,config与app/client同级。1)宏定义:在config.xml中,型如$XXX$。2)设置宏值:SchemaSource#setMacroValue(String key,String value)-配置文件- -代码中设置宏-SchemaSource ss=.ss.setMacroValue(MyTable, PeriodType);ss.setMacroValue(MyFK, FPeriodTypeID);也可以动态添加维度。客户端处理1. 实现父类的abstract方法。具体功能查看父类代码注释2. 与数据有关常用的三个地方:1 onBeforeQuery里设置标题2 设置打印格式和变量3 重载处理单元格事件处理方法(用于联查)3. 全局变量及主要方法说明protected RptParams params=null; 查询条件-弹出对话框返回的查询条件,常用initWorksheetComponentStyle(ComponentConfig config)设置显示格式,查询/刷新时调用,一般不需要重载。setRemoteConnection(boolean isRemoteConnection)设置是否使用远程连接,如果否,则数据一次性获取到客户端,缺省为否。临时表的处理com.kingdee.eas.fm.birt.app.BirtBaseFacadeControllerBean提供, 建议不要自己写创建/删除临时表的sql, 因为临时表处理EAS系统有专门的管理:获取临时表名:getTempTableName使用select into 创建临时表及数据executeSelectInto释放临时表dropTempTableSQL执行接口com.kingdee.eas.fm.birt.app.BirtBaseFacadeControllerBean提供:_executeQuery_executeUpdate打印设置打印表头格式方法protected void preparePrintPageHeader(HeadFootModel header) 返回打印表头变量方法protected Map preparePrintVariantMap()辅助类使用1. 条件存储1) 在FilterUI里,可以使用RptConditionManager类自动存储。public RptParams getCustomCondition() RptConditionManager rm=new RptConditionManager();rm.recordAllStatus(this);return rm.toRptParams();public void setCustomCondition(RptParams params) RptConditionManager rm=new RptConditionManager(params);rm.restoreAllStatus(this);2)获取方法:RptParams. getObjectElement(“name.value”);name为条件相应控件的名称,getObjectElement方法可以用属性来访问其中的对象,如,name.value为com.kingdee.eas.framework .DataBaseInfo对象,取其编码:RptParams. getObjectElement(“name.value.number”);使用示例:一般使用示例 /保存条件public RptParams getCustomCondition() RptConditionManager rm=new RptConditionManager();rm.recordAllStatus(this);return rm.toRptParams(); /设置条件public void setCustomCondition(RptParams params) RptConditionManager rm=new RptConditionManager(params);rm.restoreAllStatus(this);扩展用法示例public RptParams getCustomCondition() RptConditionManager rm=new RptConditionManager();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);return rm.toRptParams();public void setCustomCondition(RptParams params) RptConditionManager rm=new RptConditionManager(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 (Exception e) this.handUIException(e);2. SqlParams的使用a) 与PreparedStatement使用方法类似,较之更简洁方便。作为SQL执行接口的参数。b) 调试用:SqlParams.sql() 即可得到完整(不带?参数)的sql。参考例子重大资金流入流出汇总表com.kingdee.eas.fm.ivt.RptBlockFundFlowGGMainUI图形显示图形增加效果示例添加方法代码只需要在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
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 销售管理


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!