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. C# 实现的异步 Socket 服务器

    介绍 我最近需要为一个.net项目准备一个内部线程通信机制. 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成. 考虑到实现的可能性,我下定决心要使用原生的soc ...

  2. Ngxtop-Nginx日志实时分析利器

    ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop.有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail ...

  3. 火狐浏览器Firefox Firebug使用方法

    什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求.要写出漂亮的HTML代码:要编写精致的CSS样式表展示每个页面模块:要调试javascript给页面增加一些 ...

  4. 如何用代码组织多个Storyboard(故事板)

    1. 新建一个Storyboard取名为OtherStoryboard.storyboard 2. 使用下面代码加载 UIStoryboard *newStoryboard = [UIStoryboa ...

  5. Java从零开始学十七(简单工厂)

    简单工厂的实现 实现一个计算器:要求输入2个数,和运算符,得到结果 Operation类 package com.pb.demo1; public class Operation { private ...

  6. JPA中的一对多双向关联与级联操作

    学习Spring有两周时间了 , 个人觉得服务端主要实现的是数据关系的维护和数据结构的制定 , 以及由业务需求产生的CRUD , 只要保证对前端提供的接口稳定高效响应 , 具体的前端实现完全不关心. ...

  7. Linux 下升级python和安装pip

    Linux版本升级: 1.  首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致 所有的python版本都在https://www.python.org/ftp/pytho ...

  8. Tomcat日志格式自定义

    设置日志显示信息格式,默认情况下,Tomcat的访问日志是不记录的.需要在serve.xml中修改配置,去掉注释.     <!--         <Valve className=&q ...

  9. 用 Eclipse 插件提高代码质量

    如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露前发现这些问题.在 让开发自 ...

  10. JavaScript debugger 语句

    实例 开启 debugger ,代码在执行到第三行前终止. var x = 15 * 5; debugger; document.getElementbyId("demo").in ...