2014-05-31 Created By BaoXinjian

对象


(1).数据模型对象

查询、组、列、链接、用户参数

(2).布局对象

重复帧、帧、领域、样板、锚、

(3).参数表单对象

参数、字段、样板

(4).PLSQL对象程序单元

(5).触发器

(6).外部的Library库


Tabular Report: 基本的类型报告,没列对应于从数据库中选择的一个列

Group Above Reports:

Group Left Reports:

Form-Like Reports:

Form Letter Reports:

Mailing Label Reports:

Matrix Reports:矩阵报表

数据模型 DataModel


查询Query

组Groups

列(Formula、Summary、Placeholder Column)

连接(Data Link)

参数(System Paramters & User Paramters)

查询(Query)


内部查询(SQL Query): 内部SQL,无法被其他Report所应用;

外部查询(Ref Cursor Query):应用Package中的Ref Cursor,可以作为共享,具体的SQL可以定义在Report或者定义在Package中;

单查询:Report只有一个Query;

多查询:Report存在多个Query,可以使互相关联的,也可以是不关联的;

相关的多查询:多个Query中相互关联,一般用于主从式报表,两者之间通过Datalink进行关联

不相关的多查询:Query之间不存任何关系,查询先后顺序由Query的顺序位置决定,先上后下,先左后右

组(Group)


1.组的功能

(1).将一个查询的数据分成几个集合,每个结合称为组

(2).过滤查询数据,通过组过滤对应的查询结果

2.组的种类

(1).缺省组:建立Query时,自动产生Group

(2).用户定义组:用于三种情况产生分组报表&产生矩阵报表&产生子汇总

3.组过滤

允许有条件的选择由查询检索出来的数据,设定条件,过滤查询结果

(1).Oracle Report封装的过滤器

First Filter:显示组内前N条数据

Last Filter:显示组内后N条数

(2).用户定义过滤器

该过滤器通过编写PLSQL建立

4.组的层次结构

组的层次结构决定了在缺省布局对象中组的顺序

如果没有DataLink,组由Query的位置决定,自左向右,自上而下

如果存在DataLink,组由Query的主从关系决定

列(Database、Formula、Summary、Placeholder Column)


1.缺省列

为查询Select欲绝的每一项都建立一个列

2.用户定义列 - 公式列(Formual Column)

为该列定义一个计算公式,Ex: return :sal+nvl(:com,0)

按建立的位置,分为Group Level & Report Level

3.用为定义列 - 汇总列(Summary Column)

提供的计算函数有:总和、平均值、最大值、最小值,标准差,方差、计数,%总计

按建立的位置,分为Group Level & Report Level

重要属性:功能 、 源 、重设于

重设于:选择汇总的频率,是整个报表做一次汇总、每页做一次汇总、还是每个组做一次汇总

连接(Data Link)


数据连接通过主键和外部键定义了两个Query之间的主/从关系

1.等值连接 & 非等值连接

2.SQL子句:Having & Start With & Where

3.条件:=、<、 >、 <=、 >、 >=、 <>、 Like、 Not Like

参数(System Paramters & User Paramters)


1.系统参数(System Parameter)

系统默认参数,Oracle Report允许为每个报表修改标准运行设置

系统参数总共后11个

Ex: 打印的分数、货币表示方式、小数点表示方式、打印机设置、名字

2.用户参数(User Parameter)

自定义参数,该对象用于保存在运行时用户可以改变的值

在Select中代替列名字,条件,或者整个SQL

(1).引用方式 - 连接引用

i.用途:主要用于替换SQL语句或者PLSQL块中的一个值或表带式

ii.调用符号: :

iii.限制: 不能在Select中使用替换列名,不能在Form从句中使用连接引用

iv.例子

SELECT EMPNO, ENAME, SAL, COMM
                 
FROM EMP
                 
ORDER BY DECODE(:P_SORT, 1, EMPNO, 2, SAL);

(2).引用方式 - 置换引用

i.用途:用于替换Query Select中任何一部分

ii.调用符号: &

iii.限制: 不能在PLSQL块中使用

iv.例子

SELECT
&P_ENAME NAME, &P_EMPNO ENO
                 
FROM &P_EMP;

3.值列表

用于用户输入参数时,自动弹出列表让用户选择

建立方式:静态值 & Select语句

4. Layout



当运行一个Report时,Oracle Report会弹出一个窗口

中的PLSQL


用于具体的数据库事物处理

可以是使用数据库操作语言(DML):Insert、Update和Delete操作

不支持数据库定义语言(DDL): Oracle Report提供了SRW.DO_SQL封装过程增加至Report中

(1).PLSQL异常处理

i. 用户定义的异常处理:自定义Exception,再Raise

ii.标准封装的异常处理:No_Data_Found / Too_Many_Rows / Invalid_Number
/ Zero_Divide / Others 等

iii.Oracle特有的异常类处理:Raise SRW.DO_SQL_FAILURE / SRW.INTEGER_ERROR /
MAXROW_INERR /SRW.NULL_ARGUMENTS / SRW.PROGRAM_ABORT

(2). 可以使用的9中方式PLSQL结构块

PLSQL程序库(external libraries)

附件程序库(attached libraries)

程式单元(report program units)

报表触发器(report triggers)

组过滤器(group filters)

公式(formula)

验证触发器(validation triggers)

格式触发器(format triggers)

动作触发器(action triggers)

触发器


触发器可以分为三类:报表触发器、数据模型触发器、布局格式触发器

1.报表触发器

共有5个,分别在报表运行的不同阶段运行

可以执行的操作:调整报表的格式, 执行初始化任务, 访问数据库

(1).Before
Parameter Form

时间点:显示运行参数表之前

用途: 存取并修改参数值、PLSQL全局变量

(2).
After Parameter Form

时间点:显示运行参数表之后

用途:检验和修改参数值,如果运行出现问题,则返回至参数表

(3).
Before Report

时间点:运行报表之前

用途:用于初始化参数,特别是触发Query中的SQL条件

(4).
Between Pages

时间点:除去第一页外,每一页之前都会被触发

用途:用于页的格式化

(5).
After Report

时间点:结束报表

用途:将报表输出至对应目录下或者Email,删除临时表,清除初始化处理

2. 数据模型触发器

(1). 公式列触发器

公式列中的代码必须返回给公式,此公式列可以为序列,在Report不显示

(2). 组过滤器

触发时间点在检索数据之后,显示数据之前,限制记录的出现与否,此功能也可以在Where子句中实行

例子:只显示1000条数据

(3). 验证触发器

在系统参数和用户自定义参数中编写验证触发器,如果参数不正确,则停止报表运行

验证触发器必须返回一个布尔值,如返回False,则光标停留在参数中

例子:按部门打印员工列表时,对输入参数部门号进行验证

3. 布局触发器

允许用户在报表运行时根据一定条件动态地修改布局对象的显示或隐藏

布局触发中不饿能够使用DML语句

例子:在工资单报表,只有主管可以看到工资明细

4. 动作触发器

在预览器中选中一个按钮时执行的PLSQL过程,可以动态调用另一报表或者实执行PLSQL程序


Oracle Report提供的特殊的封装包,包括可在库中应用的参数、过程和异常处理

PLSQL块中可以应用SRW包的任何部分,但SRW只能在Oracle Report中调用,不能再其他工具(Forms Build)中使用

1. 用途

控制报表的运行

在运行时输出信息

初始化域对象

执行DDL语句 (建立/删除临时表)

调用用户接口

动态设置布局对象属性,(字体或者填充)

2. 常用的SRW包例子


建立举证报表必须满足四个条件

1. 单查询矩阵报表

2. 多查询矩阵报表

3. 觉有合计的矩阵报表

4. 矩阵间断式报表




Thanks and Regards

Report_Report Builder的一些基本概念(概念)的更多相关文章

  1. Form_Form Builder的常用变量(概念)

    2014-12-30 Created By BaoXinjian

  2. Form_Form Builder的基本语法(概念)

    2014-05-21 Created By BaoXinjian

  3. .NET Remoting学习笔记(一)概念

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...

  4. 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别

     事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读  不可反 ...

  5. 【转载】.NET Remoting学习笔记(一)概念

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...

  6. Microsoft SQL Server学习(一)--基本概念

    数据库的分类 关系型数据库 非关系型数据库 数据库的发展 数据都是以文件的形式存储在硬盘上FATFAT32NTFS LinuxEXT 数据库设计流程 文件系统缺陷 数据库的专业术语 数据库引擎服务 E ...

  7. Java 基础 面向对象: 接口(interface )概念 以及接口之练习3 -定义一个接口用来实现两个对象的比较并 判断instanceof是否为同类

    接口(interface )概念概念笔记 及测试代码: /** 面向对象: 接口(interface ) 是与类并行的一个概念: * 1.接口可以看成一个特殊的抽象类,它是常量与抽象方法的一个集合 * ...

  8. 设计模式相关面试问题-Builder基础详解与代码解读

    java的builder模式详解: 概念:建造者模式是较为复杂的创建型模式,它将客户端与多含多个组成部分(或部件)的复杂对象的创建过程分离. 使用场景:当构造一个对象需要很多参数的时候,并且参数的个数 ...

  9. 分布式爬虫框架XXL-CRAWLER

    <分布式爬虫框架XXL-CRAWLER> 一.简介 1.1 概述 XXL-CRAWLER 是一个分布式爬虫框架.一行代码开发一个分布式爬虫,拥有"多线程.异步.IP动态代理.分布 ...

随机推荐

  1. Byedance AI Camp-笔试题目

    最小m段和问题:给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列.如何分割才能使这m段子序列的和的最大值达到最小? Input 第一行输入一个整数t,代表有t组测试 ...

  2. scala 学习笔记八 简洁性

    Scala可以简洁地表示概念,有时甚至可以说过于简洁. 1.消除中间结果 在组合表达式中,最后一个表达式会变成整个表达式的结果.下面的例子中,值会被捕获到val result中,然后result从方法 ...

  3. 【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!

    我都不好意思发题解了,看这篇博吧.(飞行路线的,基本一样) http://blog.csdn.net/vmurder/article/details/40075989 同学做了好久.我害怕题里有坑,又 ...

  4. Linux Shell处理文本最常用的工具大盘点

    导读 本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实 ...

  5. 关于帝国CMS迁移到新服务器上出现问题的处理办法

    在帝国CMS项目整体迁移过程中,或多或少总会出点幺蛾子,以下就常见的注意事项整理一下: 一.修改 e/config/config.php中的数据库相关配置 二.让项目文件位置具有读写权限 三.设置ph ...

  6. linux cp覆盖每次都有提示

    1.cp命令,目标已经存在,每次都提示是否覆盖,怎么办? 2.cp --help 可以看到选项-i的时候,才会提示,但是这里并没有-i,为什么每次都有提示? 3.原因是:这里执行的cp是一个别名,通过 ...

  7. nginx+tomcat+redis完成session共享(转载)

    转载:http://blog.csdn.net/grhlove123/article/details/48047735 tomcat7下基于redis的session共享所需jar包: http:// ...

  8. php之快速入门学习-16(PHP 魔术变量)

    PHP 魔术变量 PHP 向它运行的任何脚本提供了大量的预定义常量. 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常 ...

  9. LogUtils.java

    package com.xdsjs.save.utils; /** * 日志相关管理类 * Created by xdsjs on 2015/10/13. */ import android.util ...

  10. 14.怎样自学Struts2之Struts2类型转换[视频]

    14.怎样自学Struts2之Struts2类型转换[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pa ...