



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
E表与InsIMW产品集成方案林恩德 2007-12-24概述E表为公司引入的第三方报表开发工具,实现基于Web的报表配置、应用与发布功能。报表功能作为数据输出与展现的重要内容,在公司工程项目管理系列产品中有着重要的作用。引入的E表报表工具,将提高系统开发效率、提高系统客户化与二次开发方面的能力。E表工具采用.Net(C#)开发实现,支持常见的多种数据库,与公司的产品与技术方向比较类似,为系统的整合集成提供方便,系统集成的内容主要集中在功能的复用、易用性与权限控制方面。集成内容E表本身提供了报表设计、参数定义、报表处理、报表输出等全套方案。要实现与InsIMW产品的集成,就是要在现有功能的基础上,充分利用底层平台的现有功能,在数据处理、功能与数据权限控制、参数定义等方面实现集成,来达到提高工作效率。主要内容如下:1. 报表权限控制权限控制包括功能权限与数据权限的控制,E表本身并不提供报表权限控制功能。需要将InsIMW中的权限控制应用到报表权限管理中去。2. 报表参数定义E表提供了灵活的报表参数定义与配置界面,通过页面参数传递与可配置的查询界面等方式提供参数配置功能。单E表的参数定义是动态配置的,有灵活性优势的同时存在复用度不高、不能与数据权限相结合等缺点。(比如:取合同列表的控件,英思的业务控制很容易支持,但采用配置的方式,需要写复杂的SQL来处理数据权限,且不能复用),需要定义专门的报表参数功能来将已有的功能加以复用。3. 功能函数扩充E表系统提供了较多的内部功能函数,但对系统内部的字典数据的获取与处理,仍然需要通过传统方式处理,而E表本身提供对函数的扩充支持。系统需要对一些常用的数据获取转换,实现可复用的功能函数,比如:根据部门ID获取部门名称,根据用户ID获取用户名称中,通过这些个功能函数的应用,提高报表配置的效率。4. 参数动态化处理此功能与报表参数定义有关,在E表中,由于数据源采用定义SQL的方式来实现,如果查询参数较多,且为动态参数时,SQL语句比较麻烦,而在Ins平台中,动态参数处理有专门的方法,需要将此功能在E表数据源的处理中加以应用。可能需要使用到数据源的推模式5. 报表的输出E表提供的丰富的报表输出功能,但由于界面是在其统一的框架内,灵活性不够,需要对输出一块进行研究,使之与Ins平台的报表输出一致,并增加如数据行列锁定等易用的功能,特别是在一些综合查询的方案中。此部分工作相对比较简单。下面对上述四种方案分别加以设计并描述。注意:E表默认支持GB2312编码,而InsIMW默认为UTF-8编码,要考虑这两种编码模式下的兼容问题。(包括脚本兼容)。报表存储与报表权限控制E表支持文件与数据库两种报表模板存储模式,对数据库存储方式,需要进行二次开发,以实现特定的存储功能。Ins报表权限控制是基于Url访问的权限控制方法,通过InsPageCtrl控件的权限控制功能实现。而目前系统的报表并没有使用该权限控制功能。E表报表系统应用后,从安全角度考虑,有必要在此方案基础上实现数据报表的权限控制功能。E表系统通过统一的入口(ebsys/fceform/ereport/ebrun.htm)来调用,不能满足使用目前的权限控制功能。系统仍然采用每个报表定义ASPX程序文件的方式,根据InsIMW的设计,功能页面的定义统一在QX_FUNCPAGE表中,系统将E表的存储方式设置为数据库存储,定义文件名的规则为:功能编码_报表名称其中:l 功能编码对应报表的功能点编码,符合英思系统功能点定义规范l 报表名称就是报表定义的显示名称系统实现InsReportCtrl控件,对报表的呈现进行封装,支持报表的权限控制与报表导航功能。权限控制的流程为:1. 定义报表链接控件链接的报表功能点编码;2. 用户点击报表控件时链接控件时获取功能点编码;3. 根据功能点编码获取QX_FUNCPAGE中定义的功能对象,4. 如果不存在,则默认有权限,到第7步5. 如果存在,但设置为不进行权限控制,则有权限,到第7步6. 否则查询用户权限表,看当前用户是否有报表查询权限7. 如果有权限,导航到报表结果显示界面,结束。8. 否则,显示没有权限的提示信息,结束。 使用E表后,系统的报表查询与开发实现修改为:1. 设计报表根据用户的需求,包括样式、数据来源等信息,进行报表的设计,并定义报表所要求的接口参数,如:报表名称、开始日期、结束日期、部门、用户等。报表配置人员提供这些参数给应用开发人员。2. 定义参数配置界面对一组类似的报表查询,可以共用同一个报表参数配置界面(参数配置界面见下节描述),并通过定义InsReportCtrl控件属性来实现报表查询。演示案例:/InsSystemApp2.1/modules/QuickStart/Example/InsEBiaoEmp.aspx报表控制权限报表控制权限主要是指报表的打印、导出与数据刷新的权限,也就是实现了对报表根据栏的控制。系统在InsReportCtrl控件中对上述权限控制提供了实现。实现的属性及控制功能如下:属性功能备注ShowToolbar是否显示工具栏如果不显示,其他的设置失效ShowPrint是否支持打印功能ShowRefresh是否支持数据刷新ShowExport是否支持数据导出上述功能可能需要根据实际需求进一步细化。(对应修改ebruntb.htm页面)报表参数定义上面已经提及,E表中的参数定义不能完全满足系统的要求,此方案中原则上不采用E表默认的系统参数定义,而是使用目前的报表参数查询方式来实现。下一步再考虑动态参数配置功能。InsReportCtrl支持对报表查询参数的自动处理功能,通过获取实现IQueryCtrl控件的QueryCode属性或 WebControl控件的Tooltip属性对应报表的查询条件参数(或宏定义)。系统支持的查询参数定义控件如下。序号控件处理方法备注1InsTextBox直接取Text属性2InsTreeList如果值类型为数字,取大于0 的值(SelectedIntValue)否则直接取选择的值(SelectedValue)3InsAjaxBox只读模式,取值Value可编辑模式,取Text属性4InsDateList如果不存在值,不处理对年月日模式,取年月日的字符”2007-12-12其他模式取:SpanCode,年、季、月、周5InsDateBox存在日期时,取年月日的字符”2007-12-126CheckBoxTrue false 注意:对于日期参数,如果时截止日期,则需要在日期后加上1天。如果页面中存在多个报表链接,即多个InsReportCtrl控件,可以通过指定控件及参数控件的的前缀来指定哪些属性用于哪些控件。规则如下:prefix1,prefix2,:paramCode表示参数前缀为prefix1,prefix2的报表可以适当paramCode代表的参数。其他控件不能使用。其他规则如下:没有定义参数的控件不能使用已经定义参数前缀的值。不管有没有定义前缀,控件都可以使用没有定义前缀的参数的值。为了保证接口参数的规范性,常见的参数定义如下:reportname报表名称userid用户名称startdate开始日期enddate结束日期deptid部门编号pactcode合同编号xxxid什么什么的编号对一些系统的常见参数,如:当前的用户名、所在部门等信息,直接注入到session变量中,供报表定义时直接引用。预定义的变量如下:序号名称编码位置说明1当前用户姓名usernameSession从原有的UserInfo中提取出来2当前部门名称deptnameSession3单位长名称longnameapplication可作为报表的参数4单位短名称shortnameapplication可作为报表的参数注意:application中的变量目前引擎没有实现,需要E表开发商完善引擎。功能函数扩充序名称函数名说明备注1获取组织结构(部门)名称toDeptName从部门表中获取部门名称deptid部门ID,为空时显示当前登录用户所在的部门可选2获取用户名称toUserName根据用户ID获取用户名称userid用户名,为空时显示当前登录用户的名称可选3获取通用类型名称toComTypeName从通用类型表中获取comInfo通用类型的编码(如:00100020)或类型的ID序号(如:235)。4通用的方法toName通用的方法,参数为:表名称,名称tableName: 数据表名称colName: 字段名称或符合字段表达式 如:CONTRACT_NAME或CONTRACT_CODE+”-”+CONTRACT_NAME内部字符串使用”代替号。expressStr:查询表达式,为整数时直接通过主键ID获取对应的值,否则为查询表达式如:DEPT_ID=4emptyVal: 没有对应值时的结果可选5获取编码的层次toLevel获取编码的层次,4位一层innerCode 内部编码,根据内部编码的长度获取数据的层次,4位为一层6获取周期编码toSpanName根据周期编码获取名称spancode 字符串或表达式,必须符合Ins周期编码规范 上述函数需要实现基于Cache缓存功能,可直接通过底层平台的现有Cache框架实现。 详细的实现方法与规范参考e表集成开发手册。动态参数处理对一般简单的参数,通过上面的参数处理功能来实现,有些非必要的参数,在SQL处理时通过判断是否存在。 由于E表报表引擎的限制,在处理查询参数时,不是使用原来的参数名传递的方式,而是使用 :序号 的方式,而同一个参数,如果使用多次,需要分别定义。(或评估修改引擎的代价,并修改引擎的实现)。原理如下: And (t.PACT_CODE=:1 Or length(:2)=0 ) ,参数中需要定义2次,虽然为一样。对于复杂的SQL语句,或动态构造的结果集合,可以通过在外部定义结果集的方式来实现。并通过public static void UserDefineDataSet(System.Collections.Hashtable prop, out rrayList colNameList,out ArrayLis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国干砂浆项目创业计划书
- 基于问题导向的高中生物教学探究
- (正式版)DB53∕T 1443.2-2025 《 食品安全应急抽检技术规范+第2部分:自然灾害》
- 2025年全球海洋酸化的气候影响
- 2025年河北对口招生题库及答案
- 2025年上海市汽车驾驶员高级理论知识考试试卷带解析必考【名师系列】
- 2025年乡村医生培训题库及答案
- 七氟丙烷气体灭火系统施工方案和施工方法
- 2025年人力资源历考试试题及答案
- 中国工业防震密封圈项目创业计划书
- 色素炭黑生产工艺流程
- 财务总监岗位招聘笔试题及解答(某大型团公司)2025年
- 团务知识技能培训方案课件
- 音乐交流会课件
- 骑手配送食品安全培训课件
- 禅茶养生师初级考试试卷与答案
- 生鲜乳安全培训班课件
- 2025年公共行政学电大专科考试考点版
- 白内障患者术后并发症护理的护理查房
- 四川康定偏岩子金矿床成矿流体特征:剖析与启示
- 香港证券及期货从业考试题库卷一及答案解析
评论
0/150
提交评论