E表与InsIMW产品集成方案_第1页
E表与InsIMW产品集成方案_第2页
E表与InsIMW产品集成方案_第3页
E表与InsIMW产品集成方案_第4页
E表与InsIMW产品集成方案_第5页
全文预览已结束

下载本文档

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

文档简介

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 表的 存储方式设置为数据库存储 定义文件名的规则为 功能编码功能编码 报表名称报表名称 其中 功能编码对应报表的功能点编码 符合英思系统功能点定义规范 报表名称就是报表定义的显示名称 系统实现 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 12 6CheckBoxTrue false 注意 对于日期参数 如果时截止日期 则需要在日期后加上 1 天 如果页面中存在多个报表链接 即多个 InsReportCtrl 控件 可以通过指定控件及参数 控件的的前缀来指定哪些属性用于哪些控件 规则如下 prefix1 prefix2 paramCode 表示参数前缀为 prefix1 prefix2 的报表可以适当 paramCode 代表的参数 其他控件不 能使用 其他规则如下 没有定义参数的控件不能使用已经定义参数前缀的值 不管有没有定义前缀 控件都可以使用没有定义前缀的参数的值 为了保证接口参数的规范性 常见的参数定义如下 reportname报表名称userid用户名称 startdate开始日期enddate结束日期 deptid部门编号pactcode合同编号 xxxid什么什么的编号 对一些系统的常见参数 如 当前的用户名 所在部门等信息 直接注入到 session 变 量中 供报表定义时直接引用 预定义的变量如下 序号序号名称名称编码编码位置位置说明说明 1当前用户姓名usernameSession 2当前部门名称deptnameSession 从原有的 UserInfo 中提取出来 3单位长名称longnameapplication可作为报表的参数 4单位短名称shortnameapplication可作为报表的参数 注意 application 中的变量目前引擎没有实现 需要 E 表开发商完善引擎 功能函数扩充功能函数扩充 序序名称名称函数名函数名说明说明备注备注 toDeptName从部门表中获取部门名称 1 获取组 织结构 部门 名称 deptid部门 ID 为空时显示当前登录用户所在的部门 可选 toUserName根据用户 ID 获取用户名称 2 获取用 户名称userid用户名 为空时显示当前登录用户的名称可选 toComTypeNam e 从通用类型表中获取 3 获取通 用类型 名称comInfo 通用类型的编码 如 或类型的 ID 序号 如 235 toName通用的方法 参数为 表名称 名称 tableName 数据表名称 colName 字段名称或符合字段表达式 如 CONTRACT NAME 或 CONTRACT CODE CONTRACT NAME 内部字符 串使用 代 替 号 expressStr 查询表达式 为整数时直接通过主键 ID 获取对 应的值 否则为查询表达式如 DEPT ID 4 4 通用的 方法 emptyVal 没有对应值时的结果可选 toLevel获取编码的层次 4 位一层 5 获取编 码的层 次 innerCode 内部编码 根据内部编码的长度获取数据的层次 4 位为一层 toSpanName根据周期编码获取名称 6 获取周 期编码spancode 字符串或表达式 必须符合 Ins 周期编码规范 上述函数需要实现基于 Cache 缓存功能 可直接通过底层平台的现有 Cache 框架实现 详细的实现方法与规范参考 e 表集成开发手册 动态参数处理动态参数处理 对一般简单的参数 通过上面的参数处理功能来实现 有些非必要的参数 在 SQL 处理时 通过判断是否存在 由于 E 表报表引擎的限制 在处理查询参数时 不是使用原来的参数名传递的方式 而是使用 序号序号 的方式 而同一个参数 如果使用多次 需要分别定义 或评估修改引 擎的代价 并修改引擎的实现 原理如下 And t PACT CODE 1 Or length 2 0 参数中需要定义 2 次 虽然为一样 对于复杂的 SQL 语句 或动态构造的结果集合 可以通过在外部定义结果集的方式来实现 并通过 public static void UserDefineDataSetUserDefineDataSet System Collections Hashtable prop out rrayList colNameList out Ar

温馨提示

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

最新文档

评论

0/150

提交评论