服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > DBA > 查看文档

在熟悉的环境中制作报表

  这篇文章介绍了oracle business intelligence publisher enterprise和template builder的特性。它显示了怎样创建sql和基于oracle business intelligence answers的报表并通过熟悉的microsoft word环境定义模板……

  【it专家网独家】使用熟悉的桌面工具和oracle企业数据源创建报表。

  人们希望得到信息,无论是每周的销售数字、有特别的服务请求的客户名单、或只是上个星期下订单的客户列表。将这与产品发货、客户信件、支票结算、或者甚至是交易交换的数据结合起来,你可以看到一个典型的公司对报表的需求随着时间的推移在不断的增加。

  随着互联网和服务面向架构在公司中的渗透,我们的报表来源似乎是多种的,并且目前的报表可以基于像xml和web services这样的技术,就好像关系数据库有oracle数据库10g等等。终端用户普遍希望得到各种格式的输出报表,有普遍用于像素完美展示的adobe pdf格式的报表,有采用html格式的用于网络传输的报表,还有csv和xml格式的报表用于导出和加载到其他系统中去。

  为解决这些不同报表需求和增加业界领先报表和发布特性到oracle融合中间件产品组合中去,oracle business intelligence publisher 10.1.3包括了oracle business intelligence publisher enterprise,它是一个包括报表、审计和发布工具的一整套的集合,这些工具你可以单独安装,也可以作为oracle business intelligence suite enterprise edition的一个集成部分来安装。oracle business intelligence publisher enterprise可以安装并运行在各种j2ee兼容的应用服务器上,包括oracle application server 10g。

  oracle business intelligence publisher通过分离数据查询和报表模板,提供给你这个能力,例如,要创建一个单独的发货收回查询,这个查询要在之后的运行时与各种发货模板相结合以便适应各种类型的客户,这使得报表发布更加容易。oracle business intelligence publisher还处理多种语言翻译和字体,不再需要购买昂贵的单一用途的应用程序来打印特殊语言或特殊的格式。最重要的是,oracle business intelligence publisher使用熟悉的桌面工具例如microsoft word和adobe acrobat来显示报表模板,使得报表建立过程是在一个熟悉的环境中,并减少了对培训和额外软件的需求。

  所以如果你安装了oracle business intelligence publisher,无论是单独的还是作为oracle business intelligence suite enterprise edition的一部分,你怎么制作报表呢?在下面的例子中,你将首先创建一个仓库的库存报表并通过使用从订单条目(oe)样本schema中获得的数据来组成这个报表。然后你会看到oracle business intelligence publisher和oracle business intelligence suite enterprise edition相结合,使用oracle business intelligence publisher来创建一个带有oracle business intelligence answers请求的像素完美的报表。

  制作一个带一个参数的数据库报表

  登录到oracle business intelligence publisher enterprise的主页(默认用户名和密码是administrator/administrator)来生成一个门户类型的界面,它会显示你可以管理和运行的报表(见图1)。

figure 1

  图 1: oracle business intelligence publisher enterprise主页

  页面左边提供了一个普通任务的列表,页面的主要部分显示了以文件夹和子文件夹组织的报表。要编辑一个文件夹,点击文件夹名称后面的文件夹图标;要运行一个报表,点击报表名称;要进到文件夹或子文件夹里,点击文件夹名称。

  但是在你可以开始制作报表之前,你需要配置oracle business intelligence publisher enterprise来增加一个jdbc数据源,它指向用于第一个报表的数据库。要这么做,点击admin标签(见图1),定位到页面中的数据源区域,点击jdbc连接,然后点击添加数据源。之后,输入你的安装细节。下面举例说明数据源、url、用户名和密码的占位符。

  •   数据源名称: oe_ds
  •   url: jdbc.oracle.thin:@::
  •   用户名: oe
  •   密码: password

  数据库驱动程序类: oracle.jdbc.driver.oracledriver

  本文中的报表是设计用来查询oe样本schema。在你的系统中,提供正确的数据源名称、url、用户名和密码;点击测试连接来检查你提供的细节是否正确;点击应用保存细节。你现在已经准备好创建你的第一份报表。

  第一个报表要求创造一个仓库的库存报表,在这个报表里用户可以选择一个仓库和查看到所有产品和现存量。这个报表的数据来自oe.warehouses、oe.products和oe.inventories表。要开始创造这个报表,首先点击报表标签返回到oracle business intelligence publisher enterprise主页,点击我的文件夹链接,然后在文件夹和报表任务区域点击创建一个新报表。在输入报表名称框中输入报表名称warehouse_inventories并点击创建。新报表显示在页面的右边;点击报表名称下的编辑链接开始报表定义的数据集。

  oracle business intelligence publisher enterprise现在显示的是数据集页面,它包括一个动态的html界面使你可以定义数据模型、一系列的值、参数和与一个报表相关联的模板(见图2)。

figure 2

  图 2:数据集页面

  在报表导航(在页面的左边)中点击数据模型,然后点击新建来创建一个新的数据集。命名查询为inventory_query,在类型框中选择sql查询。选择你之前从数据源列表(在我们的例子中是oe_ds)里创建的数据源,如果你希望oracle business intelligence publisher能够保存报表请求的数据以便加快未来的请求那么检查缓存结果复选框。

  用来提供给报表数据的sql查询有两种方式。你可以直接将它敲入sql查询文本框中,使用下面的sql脚本:  

select w.warehouse_name
  , p.product_name
  , i.quantity_on_hand
  from oe.inventories i
  , oe.products p
  , oe.warehouses w
  where w.warehouse_id = i.warehouse_id
  and p.product_id = i.product_id
  and w.warehouse_name
  in (:warehouses)

  (注意:仓库绑定变量会在之后你添加参数到这个报表中时使用。)

  或者你可以利用query builder特性来图形化的创建你的sql语句(见图3)。

figure 3

  图3: query builder

  要使用query builder,在报表定义页面点击query builder。在query builder页面,从schema列表中选择oe,然后将warehouses、products和inventories表拖到图形(模型)视图中。(注意你可能需要在query builder中在搜索框中输入每个表名称的第一个字母来定位它们。)要连接warehouses表到products表,首先点击列选择器到warehouse_id列的右边,然后点击inventories表中相应的列选择器来创建连接。在products表和inventories表中的warehouse_id列做同样的连接。然后点击条件来添加报表参数所要求的(:warehouses)条件。点击sql查看生成的sql,点击结果查看查询输出的子集。最后,点击保存(在页面的上部)以关闭query builder和复制产生的sql到数据集页面上。

  下一步是定义报表参数和关联的值列表。要创建值列表,在报表管理器中选择值列表结点,点击新建,输入一个名称,选择和之前相同的数据源(在我们的例子中是oe_ds)。你可以手动输入获得值列表的sql,如下所示:  

select warehouse_name
  from oe.warehouses

  或者像之前一样利用query builder创建sql语句。点击保存来关闭query builder,点击保存来保存值列表。

  要创建一个报表参数和添加到报表sql中的绑定变量一起,选择参数结点并再一次点击新建。当你完成了参数选择(见图4),标识符的值应该和查询中所指定的用于产生报表的绑定变量一致(:warehouses)。选择菜单中的参数类型并使多选为不选,这会告诉oracle business intelligence publisher从用户自己选择的参数获得值产生列表。点击保存来保存参数的值。

figure 4

  图 4:添加一个报表参数

  你现在已经完成了报表定义的初始阶段。保存你的工作内容,返回到罗列你的报表和文件夹和报表任务的oracle business intelligence publisher enterprise页面。现在还不能查看你的报表。

  创建一个报表模板

  既然报表定义完成了,那是时候创建一个和它一起的模板,oracle business intelligence publisher将利用它来决定怎样显示报表结果。某一特定的报表定义可以有许多模板与它关联,但是现在你将通过利用oracle business intelligence publisher的加载到microsoft word功能设置一个简单表格式的报表模板。要安装template builder,点击文件夹和报表任务中的template builder链接(或者将它定位到oracle business intelligence publisher安装盘上)。

  在安装了template builder之后,启动microsoft word,通过oracle business intelligence publisher工具条连接到oracle business intelligence publisher服务器。选择oracle bi publisher->登录(见图5)。

figure 5

  图 5: 登录到oracle business intelligence publisher

  在登录页面,输入你用来连接到oracle business intelligence publisher的用户名和密码,如果这是第一次你连接到template builder,输入oracle business intelligence publisher enterprise 服务器的url。

  在你可以设置报表模板之前,你需要从报表的数据模型获取数据的一个样本集。template builder打开模板对话框展示给你一个你访问过的所有报表的列表;找到并选择您刚刚定义的报表,并点击打开报表来获取样本数据集(见图6)。

figure 6

  图 6: 打开的模板对话框

  你现在可以开始设置你的报表模板。

  对于这个报表,创建一个存货项目表和库存级别,按它们所在的仓库分组。要这么做,在word文档里选择oracle bi publisher->插入->表向导,然后利用向导为表选择数据项,并且可选式的这些项所在的表是分组了的并按顺序排列的(见图7)。在这个表的这种情况下,将数据按仓库分组并按顺序排列库存项目。

figure 7

  图 7: 表向导

  添加一个总计到报表中以显示所选择的仓库中所有产品现存量的总数。要做到这点,选择oracle bi publisher -> 插入 ->字段,然后在字段对话框中选择现存数量字段和总和计算。

  现在,当你在microsoft word中查看报表模板时,你可以看到报表显示出来并且使用了microsoft word内置的格式特性来添加图片、更改字体、添加下划线等等。

  要将这个模板上传回oracle business intelligence publisher enterprise服务器,首先将这个模板保存为一个.rtf文件到你的文件系统中,然后选择oracle bi publisher ->发布模板作为。命名这个模板,点击ok以将它上传回服务器。你现在可以返回到oracle business intelligence publisher enterprise查看你的新报表。

  既然你已经定义了一个使用从oracle数据库获得的关系型数据的报表,你可以创建一个使用oracle business intelligence suite enterprise edition作为数据源的报表。但是用oracle business intelligence suite时,你可以直接利用common enterprise information model(公共企业信息模型)作为你的数据源,oracle business intelligence suite enterprise edition相当于oracle business intelligence discoverer的终端用户层,或者你也可以改变报表数据源类型为oracle bi answers,并选择一个请求作为报表数据源。

  现在这个报表数据源已被指定,如图8所示,你可以添加参数、值列表,然后可以以相同的方式添加一个报表模板(对于基于sql查询的报表)。

figure 8

  图 8: 使用一个oracle bi answers 请求作为数据源

  最后,因为你的报表定义完成了,你可以通过url直接查看报表或通过oracle business intelligence publisher enterprise web界面,或者你甚至可以将它们嵌入到oracle business intelligence interactive dashboards的仪表盘页面,还有同oracle bi answers一起创建的请求(如图9所示)。

figure 9

  图 9: 嵌入了一个oracle business intelligence publisher报表的仪表盘页面

  总结

  这篇文章介绍了oracle business intelligence publisher enterprise和template builder的特性。它显示了怎样创建sql和基于oracle business intelligence answers的报表并通过熟悉的microsoft word环境定义模板。你可以针对你自己的应用数据定义报表;添加特性例如图形、图片,甚至是条形码;并开始利用oracle business intelligence publisher和oracle e-business suite。

it专家网原创文章,未经许可,严禁转载!

扫描关注微信公众号