使用 Oracle XML Publisher 构建在线报表应用程序

作为 Oracle 融合中间件系列产品中的一员,基于 Java 的 Oracle XML Publisher 5.6.2 使您能够利用 SQL 和 XML 数据源定义、发布、保护以及调度报表。 Oracle XML Publisher 最初只是作为电子商务套件中的技术来开发的,现在,它可以作为单独的产品从 eDelivery 下载,并可使用 J2EE 应用服务器(例如 Oracle Application Server Containers for J2EE (OC4J) 或 Apache Tomcat)进行部署。 最棒的是,XML Publisher 使用 Microsoft Word 和 Adobe Acrobat 等常见桌面工具来定义报表布局,这意味着用户可以通过熟悉的环境来设计报表,而无需安装和学习一个全新的工具集。

XML Publisher 包含一个基于服务器的报表引擎,该引擎将报表模板、希望报告的数据以及所有语言翻译集合在一起,然后以标准格式(如 Adobe PDF、HTML、XML、RTF 或 Microsoft Excel)分发输出。

图 1

清晰划分数据、布局以及界面有助于更轻松地以不同格式报告相同数据、更轻松地维护报表定义库以及更直接地引入多语言翻译等功能。 类似于 Oracle 融合中间件体系结构的其余部分,XML Publisher 是一款“可热交换”的独立产品,与所有基于标准的数据库或 Java 应用服务器集成。

XML Publisher 5.6.2 版本新推出了 XML Publisher Enterprise,这是一个可用于部署、调度以及保护报表的完善环境。 XML Publisher Enterprise 将向用户提供一个 Web 门户,用户可在其中加载并发布报表模板,然后向企业内的其他用户和组提供这些模板。

XML Publisher 使用基于 OpenSymphony Quartz 调度程序的调度引擎来运行并交付报表,之后可通过电子邮件或支持 WebDAV 的服务器对这些报表进行在线访问。

那么,如何利用 XML Publisher 5.6.2 Enterprise 来构建在线报表应用程序呢?

背景

在本示例中,您将为企业创建一个在线报表环境。 您需要创建一个您的同事将使用的初始报表集,之后您的用户会对其进行维护并创建他们自己的报表。 其中的关键要求是,报表环境基于 Web 并安全,用户可轻松导航并使用该环境;报表可按需运行或按计划定期运行,用户可将数据从其报表导入常见的桌面应用程序格式(如 Microsoft Excel 和 Adobe Acrobat)。

报表最初的使用者包括采购部门用户和销售经理,前者希望查看有关供应商发票的报表,后者希望在其 Web 浏览器中和通过 Microsoft Excel 分析销售数据。

在这些示例中,要报告的销售数据存储在 Oracle9i 数据库和 Oracle 数据库 10g 附带的 SH 示例模式中,而供应商发票数据将通过事务处理应用程序的 XML 馈送信息提供。 要创建自己的报表布局,请单击此处下载 SQL 查询和 XML 文件示例。

定义基于 SQL 的销售分析报表

要创建的第一个报表是销售报表,该报表使用来自 SH 示例模式的数据。 开始之前,请打开您的 Web 浏览器并登录 XML Publisher Enterprise,以便整理您的报表定义。 成功输入用户名和密码后,您将看到 XML Publisher Enterprise 主页。

图 2

该 Web 页面的左侧下部是任务窗格,其中包含的链接可用于创建新文件夹或报表或者上载现有报表。 该页面的右侧是一组 XML Publisher Enterprise 附带的示例报表。

单击 Create a new folder 链接为即将定义的报表创建一个文件夹,将其命名为“Sample Reports”。 按此方法对报表进行分组易于将这些报表划分为不同的主题领域,稍后可指定能够访问个别文件夹和报表的用户和组。

图 3

然后,导航至刚创建的文件夹,单击链接创建一个新报表,将其命名为“sales report”。 创建报表之后,您会看到若干选项,可用于查看、调度、编辑报表或查看报表执行历史。

图 4

现在,报表已经创建,您需要编辑定义以指定数据模型、报表可能使用的所有参数以及报表布局。 为此,单击报表标题下的 Edit 链接。 之后,XML Publisher Enterprise 将调出一个动态 HTML 界面以树视图显示报表定义元素。

图 5

XML Publisher 报表定义包含以下元素:

  • 数据模型,即数据库查询或 XML 文档
  • 报表模板,稍后您会使用 XML Publisher Desktop 对其进行定义
  • 报表使用的所有参数以及
  • 参数下拉列表的所有值列表

这四个元素共同组成了报表定义,之后 XML Publisher 会将该定义以 XML 格式存储在应用服务器中间层上。

接下来,单击报表树视图上的 Data Model 节点,单击 New 按钮创建一个新的数据模型,然后选择连接至您的数据库的 JDBC 数据源。 如果还没有这样的连接,则需单击该页面顶部的 Admin 链接来定义 JDBC 连接。

图 6

选定了数据源后,按 New Query Builder 按钮选择将从数据库连接返回的数据项。 Query Builder 使您能够使用图形用户界面选择数据库表和列。

图 7

选定数据后,向查询添加联接条件和所有其他需要添加的元素,然后将其保存到 XML Publisher Enterprise。

图 8

现在,您已经定义了数据模型,可以开始考虑报表模板的布局了。

报表模板定义了页面上数据元素的排列方式,与即席查询工具(如 OracleBI Discoverer)不同,您的模板形式可以完全不受任何限制,模板中可包含来自多个查询的数据。 利用 XML Publisher,您可以使用标准的桌面工具(如 Microsoft Word 和 Adobe Acrobat)来定义报表模板。XML Publisher 5.6.2 的标准下载包括一个名为 XML Publisher Desktop 的 Microsoft Word 插件,可用于自动化大部分的模板设置过程。 在这些示例中,您将使用 Microsoft Word 和 XML Publisher Desktop(Microsoft Word 的插件)来定义模板。 (此处提供了一个展示 Word 模板定义过程的 Flash 演示。)

安装完 XML Publisher Desktop 后,您将看到一个新增的工具栏菜单,利用它可访问 XML Publisher 的功能。 因为第一个报表基于通过 SQL 查询访问的数据,所以需要访问 Data 菜单,然后选择 Report Wizard

图 9

之后按照向导逐步进行操作,指定用于检索数据的 SQL 查询、详细的数据库 JDBC 连接信息以及使用 XML Publisher Enterprise 时要用的数据源名称。

图 10

按向导完成操作后,您会看到一个默认的数据项布局。

图 11

现在,可以使用 Microsoft Word 中的格式设置功能来更改表格式、添加报表页眉和页脚、更改使用的字体以及添加企业的品牌标识。 尽管可以删除默认报表布局内的列并进行重排,但对于这个报表,应保持这些列的完整,以便随后将数据集导出到 Microsoft Excel 进行进一步的分析。

为了使该报表更有效,可为其配备一个图表。 使用 XML Publisher Desktop 可以轻松实现此目的。首先,单击 Insert 菜单上的 Chart 菜单项打开 Chart 对话框。

图 12

通过 Chart 对话框指定一个 Vertical Bar Chart,其中 Amount SoldProduct Category 进行分组。

图 13

现在,查看您的报表模板,其中的表将附带一个代表您的条形图的示例图表图片。

图 14

通过 Preview 菜单项预览了该模板后,将其作为 RTF 文件保存到您的 PC,以备上载至 XML Publisher Enterprise。

为此,首先单击报表树视图的 Layouts 节点,然后单击 New 并命名您的报表布局。

图 15

之后,再次单击 Layouts 节点,选择包含您的模板的 RTF 文件并将其上载到 XML Publisher Enterprise。

图 16

最后,就是测试您的报表:保存报表定义,返回报表选项并单击 View 运行该报表。

图 17

基于 XML 数据定义供应商发票模板

第二个要创建的报表将从事务处理系统的 XML 馈送信息获取数据。 类似于基于 SQL 的报表,创建该报表的第一步是登录 XML Publisher Enterprise 创建一个新的报表定义,将其命名为“Vendor Invoices”。

图 18

与前一个报表相同,输入报表名称后,您会看到若干选项,可用于查看、调度、编辑报表定义或查看报表执行历史。

图 19

接下来,与以前一样,单击 Edit 链接,开始定义报表。

通过 Web 界面首先定义可向您提供 XML 数据的馈送信息的位置,本例中,可从事务处理应用程序 Web 服务器通过 HTTP 访问该 XML 数据。

图 20

在这个阶段可以添加报表将要使用的任何参数和任何值列表。 然而,报表无法使用所有参数,因此单击 Layouts 菜单项并上载您之前定义的报表模板。

然后,就像对待销售报表一样,启动 XML Publisher Desktop 来定义您的报表模板。 与基于 SQL 查询的销售报表不同,供应商发票报表基于 XML 馈送信息,因此需以 XML 文档的形式提取该数据馈送信息。 由于并不是真正的 XML 文档,其中可能没有包含所有您希望在模板中包含的数据元素,您可改为将模板基于 XML 模式,完全在报表中定义元素,当然,其中将不会包含实际数据,并且生成的所有预览都只包含数据结构。

因此,对于该模板而言,首先使用 XML Publisher Desktop Data 菜单中的 XML Document 项来加载数据。

图 21

一旦 XML Publisher Desktop 确定文档加载成功,您就可以使用 Insert 菜单来设置模板布局了。 与之前使用的报表向导不同,通过 XML 数据您最初看到的是一个空白页面,要由您自己来向模板中添加数据项。

对于该模板,您希望列出的发票按与贵企业有业务往来的供应商分组。 为此,选择 Table/Form,然后从 Insert 菜单中选择 Advanced…,之后使用 Insert Table/Form 对话框逐个选择分组项和表行。

图 22

在选择了数据项并按供应商详细信息进行分组后,可对结果表进行格式设置,添加公司品牌标识,然后以 PDF 格式预览结果。

图 23

然后,如果您满意该布局,则可将该模板文件上载到 XML Publisher Enterprise,并运行该报表。 此时,该报表将从事务处理应用程序的 XML 馈送信息获取数据。 请注意用户将输出格式从 HTML 更改为 PDF、XML、Microsoft Excel 和 XML 的方式。

图 24

销售数据分析

某些用户可能希望对其销售数据进行进一步的分析,以发现商机并揭示隐藏的趋势。 XML Publisher 5.6.2 Enterprise 附带了一个在线分析工具,使得用户只需通过 Web 浏览器即可对其数据进行分析。

为了演示该功能,需返回至销售报表,运行该报表,然后单击报表右上部的 Analyze 按钮。 之后,XML Publisher 5.6.2 Enterprise 将以类似于 OracleBI Discover 工作表的样式显示一个数据透视表样式的界面,以便将数据元素拖放至交叉表上。

图 25

将渠道说明字段拖至交叉表的 Y 轴上,然后将渠道类项拖至该字段之前以便在第二项中嵌套第一项。 对 Product SubcategoryProduct Category 执行同样的操作,将 Calendar Year 拖入 Page Items 区域中,以允许用户“翻阅”数年的数据。 最后,将 Quantity Sold 添加到 Data Item 区域并查看结果页面。

图 26

由于 XML Publisher 从应用程序中间层上的报表索引并“旋转”数据,因此,执行该在线分析不会给数据库和事务处理系统带来额外负担。

对于希望使用常见的电子表格工具 Microsoft Excel 来分析数据的用户,Excel Analyzer 按钮可启动 Microsoft Excel 的本地副本,安装尚未下载的插件,然后将报表加载到 Excel 工作表中。 通过该插件,您可使用新的参数值重新查询报表,用新数据刷新报表,将其他工作表与该数据脱离,以及将该数据包含在其他计算和图形中。

报表调度和分发

有时您可能希望调度某个报表以备稍后运行,或希望定期运行该报表并将结果分发给一组用户。 若要每周发送一次供应商发票报表,可按下报表顶部的 Schedule 按钮进行设置。 但是,在开始之前,需要使用 XML Publisher 5.6.2 Enterprise 的 Admin 选项卡定义一个或多个交付选项。

要设置调度计划,需选择一个或多个交付目的地,本例报表中是向企业采购经理发送一个电子邮件消息。

图 27

在 Web 界面中,命名调度作业,指定如果作业失败或出错向其发送通知的电子邮件地址。 XML Publisher 5.6.2 Enterprise 内的调度程序提供了运行作业的选项:立即运行、稍后运行一次或每日、每周或每月运行一次;设置作业在每个星期一的 07:00 运行,将报表发送至电子邮件分发列表,并向您自己发送一份副本。

用户和组的访问权限

企业要求,仅采购部门的员工可以查看供应商发票报表和其他基于采购信息的报表,而销售报表只能由销售部门的员工查看。 您的在线报表应用程序必须满足这些安全要求。

在 XML Publisher 5.6.2 Enterprise 中,个别用户可以充当一个或多个角色,而角色可以获得访问一个或多个文件夹的权限。 通过在其他文件夹中创建子文件夹,然后在 XML Publisher 5.6.2 Enterprise 中使用复制报表和粘贴报表功能将报表移至相关子文件夹,可使安全措施更严密。

图 28

将报表置于正确的文件夹后,可将这些文件夹的访问权限授予相关的 XML Publisher 组。

图 29

这些角色、用户和权限均存储在 XML Publisher 5.6.2 Enterprise 内部,但可与其他 LDAP 服务器集成。

增强模板

到目前为止,您已构建了两个报表,这些报表设计简单,易于理解。 您使用了 Microsoft Word 中的向导来设置报表布局,并将其上载到 XML Publisher 5.6.2 Enterprise 在线运行。 但是,对于要求复杂的报表又该如何?

多数 XML Publisher 模板都是 RTF 文件,之后经 XML Publisher RTF Template Parser 处理并转换为 XSL-FO。在使用 Microsoft Word 设计报表模板时,向导会使用 XML Publisher 针对 XSL 表达式的简化标记将数据字段和其他标记添加到模板中. 这些标记将 XML 报表数据与您的报表布局相关联。 如果您熟悉 XSL 且不愿使用简化的标记,XML Publisher 还支持在模板中使用纯 XSL 元素。

除 Microsoft Word 的格式设置功能外,XML Publisher 还支持其他高级报表功能,例如条件格式设置、动态数据列、运行总计和图表。 如果您希望在模板中直接包括代码,可将任何 XSL 元素、多个 FO 元素以及由 XML Publisher 扩展的一组 SQL 表达式包含在内。 有关详细信息,请参阅 Oracle XML Publisher Enterprise 用户指南,其中包含了有关如何扩展 XML Publisher 模板的完整信息。

结论

XML Publisher 5.6.2 Enterprise 是一个用于根据 XML 和 SQL 数据设计、构建和运行报表的完善环境。 通过 XML Publisher 5.6.2 Enterprise,您可以使用熟悉的工具(例如 Microsoft Word 和 Adobe Acrobat)设计报表布局,利用用户友好的、基于 Web 的安全环境将报表提供给企业用户。

http://www.oracle.com/technology/global/cn/pub/articles/rittman-xmlpub.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1384/viewspace-430048/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/1384/viewspace-430048/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值