Oracle报表创建、修改及其功能介绍

数据库 Oracle
Oracle报表具有很多的特性,比如:容易浏览数据等。这样,掌握Oracle报表的创建和修改,了解Oracle报表的相关功能,会为我们工作带来很多方便。

Oracle报表具有一些很强的特性,可以容易地浏览数据,但是需要对表单做一些额外的工作。尤其是,报表擅长于显示小计——甚至是在多层次上。即使组织机构选择在线浏览数据,但报表仍是创建数据的细节及合计数据的有用工具。

一、创建和修改Oracle报表

1.报表开发器介绍

报表的原来目的是创建数据的打印清单,给决策人提供信息。现在,决策人更喜欢在一个网站上直接处理数据,而完全不用打印纸。在许多情况下,你可以使用表单为决策人检索数据提供一个互动环境。Oracle Developer Suite包括了一个报表开发器工具,并带有帮助你建立基本报表的向导。

2.Oracle报表的类型

在试图建立报表前,需要了解报表使用的主要布局。主要的报表类型有表格式报表(tabular report)或简单列表、控制中断或分组报表(group report)、矩阵式报表(matrix report)或交叉表、邮件标签(mailing label)。图10-1示出一个表格式报表的例子。表格式报表是数据的简单列表,如果表中包含数值数据,则底部通常有小计。这种报表易于创建和阅读。但是,对于体面一点的在线访问,这种报表不特别有用。几年前,经理们需要打印出巨长的数据清单放在手边做参考。现在简单到只要发布一个查询,就可获得所需的数据或合计的简短列表。但是,你仍需要能制作这些报表。仅记住,它们应该一直被排列好。

3.建立和修改Oracle报表
Oracle提供了一个报表向导,可帮助你创建大多数常见的报表。总的来说,它做了一件好事;但是你仍不得不修改报表并多次整理它,直到它们更专业化为止。首先面对的挑战之一是避免在一行上放置一切内容。如果你试图将太多的内容填入一个页面,则报表向导会有麻烦。首先试着缩小字体,将更多的数据压缩进报表中。但报表几乎不工作,你必须返回来手工修改它。最好打住,让向导先用尽可能少的项建立报表。如果你后来想要增加更多的项,可以一个一个地加入,同时检查添加是否恰当。

二、增强Oracle报表的功能

前面,我们已经对向导创建的基本报表做过一些变动。但是,有些报表需要做的工作比这要多的多。尤其是矩阵式报表,它难以建立模板,因此通常需要更多的功能增强。主要问题是标准模板是为带有纵向(portrait)布局的报表设计的,并且只显示有限数量的列。而矩阵式报表有多个列并可延伸到多个页面。为了说明此过程,你将使用向导创建一个矩阵式报表,按月份和按代理对销售额求和。

为了使查询更简单,报表将计算要价的合计——它不是最终的销售价。如果你想要的是最终销售价,可以编写一个查询从CustAgentList表中提取最后的BidPrice,并通过联结ListID,将该查询添加到报表中。但是,本章主要关心的是报表编写器,而上述查询则稍有些复杂,且令人分心。因此,使用AskingPrice来简化此问题,以便你只启动向导:

(1) 启动Report Builder并使用向导创建题为Sales by Month and Agent的矩阵式报表。只选择简单的Matrix报表。你不需要给该报表添加分组。矩阵组为每个组创建不同的矩阵;该Oracle报表只需要一个矩阵。

(2) 从Agents、Listings和SaleStatus表中创建一个查询。设置条件为已售房产的清单(即,SaleStatus.SaleStatus = 'Sold')。按代理的姓和名排序。小心选择并提取:LastName、FirstName和AskingPrice。

现在进入棘手部分。经理想要该报表按月份显示合计,月份显示在报表顶部代理显示在左下角。Listing表包括两个日期。为了简单起见,可以使用EndListDate。(如果你花时间建立查询来获得实际的销售价,还会获得实际的销售日期,不过在这里并不是关键)。问题是该日期是一个实际的日子,而你需要的只是月份。答案是创建一个新列,使用TO_CHAR(date, 'MM')函数将该日期转换为相应的月份。

(3) 建立该查询时有一个Define Column按钮,你可以使用它添加一个新列。但是它不能实际保存该列的描述,因此,简单直接地编辑SQL并用SaleMonth别名添加该列通常更容易。

(4) 为了定义矩阵,你必须告诉向导在行、列和矩阵单元中显示的字段。首先,选择行的字段。如本例的图10-13所示,选取LastName和FirstName字段。因为该报表不使用组,所以这两个字段都属于Level 1。

(5) 同样,选择新的SaleMonth字段作为列。在下一个向导屏上,选择AskingPrice列并单击Sum按钮,告诉Reports Builder计算每个销售代理每月的要价总和。类似地,在合计屏上,选取SumAskingPrice并计算其Sum获得行和列的合计。

(6) 在标签屏中,通过增加空间并设置为大写字母,整理标签。但是,你需要使列变窄,以便设置Month标签,而不是Sale Month。默认的宽度眼下应该比较窄。在模板屏上,必须选择No template选项。

出矩阵式报表的初始Paper Design视图。尽管它包含了所有希望的数据,但稍微简单了些并有点难以阅读。注意,该报表很稀疏,因为在该时间周期内只有8次销售活动。如果你想看到有更多数据的Oracle报表,可以改变查询条件,将Sold改为For Sale,但眼下我们还是使用这个小报表。

为了使报表看上去类似于分组报表,应该在左上角添加徽标。像以前那样,使用Insert|Image菜单选项并调整徽标的尺寸。

【编辑推荐】

  1. Oracle数据库中导出数据库的功能描述
  2. Oracle数据库锁的常用类型有哪些
  3. Oracle数据库文件移动的实现
  4. Oracle数据库的四种实用性很强的启动方式
  5. Oracle数据库的表与索引保证性能的方案介绍
责任编辑:王婧瑶 来源: 互联网
相关推荐

2010-04-23 12:50:46

Oracle触发器

2010-06-21 16:25:38

Linux Arch

2010-04-22 14:29:12

Oracle同义词

2010-11-16 16:23:04

Oracle修改用户

2009-04-02 13:45:36

网关网络

2010-03-31 15:38:33

Oracle用户

2010-11-16 16:16:42

Oracle创建用户

2009-12-18 16:10:40

新建Asp.Net

2010-01-12 17:47:31

C++语言

2010-04-08 17:51:05

Oracle表列

2010-04-30 16:09:13

Oracle修改字段类

2011-05-17 13:43:23

Oracle数据库

2010-04-08 11:25:20

Oracle date

2009-11-04 10:50:48

Oracle创建用户授

2009-12-15 11:05:05

2009-07-07 13:45:52

JDK日志框架

2010-03-29 11:31:45

2010-04-26 16:51:11

Oracle Deco

2010-04-15 10:13:18

Oracle EBS

2010-04-02 12:23:30

Oracle数据库
点赞
收藏

51CTO技术栈公众号