编辑: ZCYTheFirst 2019-07-06

收到修改稿时间:2016-11-03 [doi: 10.15888/j.cnki.csa.005778] 计算机系统应用http://www.c-s-a.org.cn

2017 年第26 卷第2期272 研究开发 Research and Development 在很大风险. 代码或配置中的任何单个错误都可能会 导致进程停止响应, 进程挂起, 甚至可能会使调用进 程崩溃, 而且基于服务端的报表技术性能很差, 严重 消耗服务器资源. 更重要的是, 对于 Java 平台, 要创 建复杂的 Office 报表就更加困难, 一般都是通过 Java 和Com 之间复杂的互操作组件来转换, 不但稳定性 差、消耗资源, 而且无法实现稍微复杂一点的动态图 表绘制. 另外如果采用 Linux、 Unix 等操作系统的应用 服务器根本无法提供 Office 自动化运行环境. 2) 服务器端的 RTF 转换技术: JAVA 平台经常使 用的一种 Office 报表技术, 首先通过复杂的 RTF 格式 编码拼成 RTF 格式的报表, 然后利用 Word 和RTF 的 兼容性, 将RTF 格式文档转换成 Word 文档输出. 这种 技术由于受到 RTF 格式的限制, 只能实现简单格式报 表, 而且编程复杂. 3) 基于 ActiveX 的浏览器端 Office 自动化技术: 此技术是浏览器端的报表技术, 利用 AxtiveX 控件对 本地资源的访问能力, 在用户端使用 Office 自动化技 术创建报表. 这种技术能够解决上述两种服务器端 Office 自动化技术存在的跨平台、提高性能、稳定等 问题. 但由于对数据的请求和处理是由 ActiveX 控件 实现, 于是在浏览器和 Web 服务器之间产生了新的会 话(Web 上下文), 不能实现统一的身份认证、 访问控制, 对于安全要求很高的系统这是致命的.

2 基于AJAX的Office可视化报表创建技术 本文提出的基于 AJAX 技术(Asynchronous Java Script and XML ,简称 AJAX )的Office 可视化报表绘 制技术, 是基于 ActiveX 的浏览器端 Office 自动化技 术的改进和创新, 利用 AJAX 异步的数据请求来组织 报表数据, 不但报表数据请求能够和页面资源共享 Web 上下文, 确保数据请求的安全性, 同时实现客户 端报表可视化绘制全过程展现, 用户能够直观看到整 个报表的绘制过程, 消除传统服务端报表生成时长时 间等待的 类死机 状态, 极大改善用户的操作体验. 2.1 页面的异步数据传输和展现 Ajax 作为 Web 2.0 标准中的核心技术之一, 其主 要的工作方式是采用异步 JavaScript 与XML 客户端 脚本与 Web 服务器交换数据. AJAX 技术为页面数 据的加载提供了异步传输功能, 大数据量操作变得更 加高效和人性化. 复杂报表(或页面)往往需要对大量数据进行检索 和汇总处理, 时间比较长. 为了改善用户体验, 让用 户能够看到报表制作的过程和进度, 不至于长时间无 状态的等待, 将大报表的数据处理逻辑进行了分解, 通过 AJAX 的异步请求获取报表数据, 并逐行、逐页 绘制界面. 示意图如图

1 所示. 图1异步数据传输和展现示意图 2.2 基于 ActiveX 的Office 自动化技术的改进 为了解决基于 ActiveX 控件的 Office 自动化技术 的安全问题, 将报表的数据请求通讯从 ActiveX 控件 逻辑中分离出来, 交给浏览器端的 AJAX 客户引擎来 实现, 这样, 利用 AJAX 技术能够共享单一的 Web 上 下文, 实现统一的身份认证和访问控制, 确保数据安 全性. 然后把Office自动化逻辑也从ActiveX中分离出 来, 由客户端的 JavaScript 实现, ActiveX 只负责装载 Office 文档, 并向网页暴露 Office 的自动化编程接口 即可. 目前能够在浏览器中承载 Office 进程, 并向网页 提供 Office 的编程接口的商用 AcitveX 控件很多, 应 用最广的就是微软开源的 DSOFramer. 网页脚本可以 通过 DSOFramer 提供的一组 COM 接口对 Office 的文 档对象进行操作. 基于 DSOFramer 控件的改进模型如 图2所示. (1) 用户首先向服务器请求 Office 报表页面;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题