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