ORACLE REPORT 高级开发
1REF游标查询 (2)
2条件格式化 (3)
3图象加入 (6)
4数据链接 (7)
5组设置 (9)
6前后处理 (10)
7报表布局调整 (13)
7.1标尺设置 (13)
7.2网格线对齐 (13)
7.3限制模式 (14)
7.4伸缩模式 (14)
7.5元素的大小控制 (15)
7.6元素的水平、垂直控制 (15)
7.7元素对齐 (16)
7.8页面控制 (16)
8手工开发报表 (19)
8.1基本报表 (19)
8.2分组报表 (21)
8.3交叉报表 (23)
1REF游标查询
建立游标查询的基本过程包括:
1.建立游标类型
2.建立游标函数
3.利用框架实现游标查询结果的展现
下边的例子通过建立一个包的方式,设置游标类型,函数,在报表游标函数中设置游标即为包函数返回。
包的定义和包体信息:
CREATE OR REPLACE PACKAGE a04 AS
type a04rec is RECORD
(
ORG_NO NUMBER(8),
NAME VARCHAR2(128)
);
type a04refcursor is REF CURSOR return a04rec;
function TESTC return a04.a04refcursor ;
end A04;
create or replace package body A04 as
function TESTC return a04.a04refcursor is
temp_container a04.a04refcursor;
begin
open temp_container for select _no org_no , name from scorg s;
return temp_container;
end TESTC;
END A04;
报表游标函数:
function QR_1RefCurDS return a04.a04refcursor is
temp_container a04.a04refcursor;
str1 varchar(200);
begin
temp_container :=a04.testc();
return temp_container;
end;
游标函数调用:
框架源指定G_ORG_NO,F_1,F_2分别指定源ORG_NO,NAME。
框架R1
2条件格式化
条件格式化用于控制显示的效果,例如计算财务的赤字,当数据值太大时,自动缩小字体,以适应框格等。
为第一个域设置颜色的条件格式化。
为第四个域设置字体的条件格式化。
现在的报表显示的格式为:
3图象加入
在布局模式下,点击,加入一个图象框,设置其属性,指定格式和文件名。
加入系统后,运行的结果为:
4数据链接
数据链接设置表与表之间的关系,其基本操作过程为:
1.建立主表查询
2.建立子表查询
3.建立两个表之间的数据链接,点后,选择主表的字段,拉到子表的字段,即可完成表的链接设置。
在数据链接后,即可分别应用该查询。
例如在GEO系统中的表单打印即可采取数据链接的模式,例如:生成结果为:
5组设置
通过组设置可以方便地控制组的移动、复制、粘贴、批量性设置元素的属性等操作。
组的操作包括:分组、解除组合、选择父级、子级、添加至组、从组中删除。
➢分组:选择一些元素后,点击分组即可把这些元素加入到组中。
➢解除组合:选择组,点击解除组合,则把组合打散。
➢选择父级、子级:默认选择组元素,显示出元素的所有外框,再点击则选择该元素。
选择组后,选择子级则所有元素被选择,如处于子级时,选择父级则又选择组。
➢添加至组,选择一些元素、一个组后,点击添加至组,则构成同一个组。
➢从组中删除,选择组中某个元素,点击从组中删除,则该元素从组中删除。
6前后处理
报表的域与框架是一种层次关系,根据这种层次关系确立数据的来源,如果层次关系错误,则不能得到正确的报表,然而报表的展示和逻辑上的层次关系并不是完全一致的,因此就需要采用报表构建器排列中前后关系来处理。
例如上图中的F3,如果将其移动到如下的位置,那么逻辑关系也就变化了,这是不正确的。
这时点击F_3 ,点击后移,则F_3 恢复到正确的状态,即在R_1下。
7报表布局调整
为了使报表美观,必须使表格的各框架、域、文字等元素大小合适,保持对齐,这就必须使用合适的布局。
布局设置包括标尺设置,元素大小移动、对齐设置等内容。
7.1 标尺设置
一般建议设置标尺的单位为1CM,网格间隔为1,网格间的对齐点个数为10。
7.2 网格线对齐
在视图中设置网格线对齐,这样可以保证,移动元素的距离为网格对齐点的整数倍,拉伸元素控制点到网格对齐点上。
7.3 限制模式
在限制模式下,如框架中的文字、域移动、缩放都在框架中。
7.4 伸缩模式
设置伸缩两者之间的差别是,第一种模式,相关元素也会随着变化。
第二种模式,只是自身变化。
如下图,都是:
7.5 元素的大小控制
例如域之间的大小,可以用直接屏幕上拉动的方法。
也可以一次选择多个元素,设置其大小,对话框如下。
7.6 元素的水平、垂直控制
一般情况下,如文字、域设置为水平固定、垂直扩展这样保证数据的完整性以及报表格式的规范。
7.7 元素对齐
对齐是一种非常常用的方法,需要注意的是在进行元素的移动时,其移动的单位也是按网格点进行的,所以如果要对齐网格,一般需要先拖拉元素大小,使其与网格对齐。
7.8 页面控制
对于表头这样的数据,有两种情况,只在首页显示如下图:
表头框的设置注意有两项,第一是垂直缩放值设置为可变,第二是打印对象在第一页。
每一页都显示,如下图,框架的属性应设置成:打印对象在全部页。
8手工开发报表
利用向导可以快速生成报表,但是向导一般只生成单一的报表,所以利用手工的方法生成报表也是必须要掌握的。
8.1 基本报表
a)建立查询,在数据模型中建立一个SQL查询。
b)转到布局模型
c)加入框架,指定框架对应源,该报表为默认的纵向报表,因此设置其垂直属性为可变。
d)加入标题框架,指定表头文字,并改变文字对齐为居中,调整文字及标题框架至合适大
小。
e)加入数据域,指定各域的数据源,调整
f)运行报表,即可显示出报表结果。
g)可对报表进行进一步的调整,例如对齐方式,文字的大小、颜色等。
调整后如下:
8.2 分组报表
a)首先在数据模型中,根据分组需要,把分组字段拉出来,如下图:
b)转到布局模型
c)加入一个新的框架,设置该框架对应源为G_CAT_C,将该框架设置为置后,从而实现该
框架为根框架,在该框架内加入一个域,该域的源为G_ORG_NO。
如下图:
d)运行报表
……
8.3 交叉报表
a)数据模型
➢输入SQL查询语句
➢拉出CAT_C 组
➢拉出BRAND_C 组
➢利用交叉单元把两个组包起来
➢加入一个汇总项,统计交叉汇总值
➢也可根据需要加入针对CA T_C 组和BRAND_C 组的汇总值
b)布局
➢加入一个框架
➢再加入一个框架,修改其为横向
➢选择这两个框架,点击插入布局矩阵,形成如下图。
➢为框架指定源
➢在纵向框架,加入域,指定其源为CAT_C
➢在横向框架,加入域,指定其源为BRAND_C
➢在交叉部分,加入域,指定其源为COUNT_QTY,形成如下图:
运行该报表,则显示如下结果:
可根据需要,对该报表进行进一步的修饰,例如报表的表头、字体、颜色等。