Reprot中的五个Trigger说明
Report Trigger
1.1 Which report trigger to use
As a general rule, any processing that will affect the data retrieved by the report should be performed in the Before Parameter Form or After Parameter Form triggers. (These are the two report triggers that fire before anything is parsed or fetched.) Any processing that will not affect the data retrieved by the report can be performed in the other triggers.
翻译:
一般法则,任何能影响报表提取的数据的行为都要在Before Parameter Form和After Parameter Form triggers中执行,(这两个报表触发器将在任何语法分析和数据提取之前。),而其它不能够影响报表提取的数据的行为可以在其它触发器中执行。
1. Before Report: Fires before the report is executed but after queries are parsed.
Before Report触发器在查询语句解析之后报表执行之前引发。
2. After Report: Fires after you exit the Previewer, or after report output is sent to a specified destination, such as a file, a printer, or an Oracle Office userid. This trigger can be used to clean up any initial processing that was done, such as deleting tables. Note, however, that this trigger always fires, whether or not your report completed successfully.
After Report触发器将在退出预览器之后或者报表输出到指定的目的如:打印机、Oracle Office用户之后执行。这触发器能够用来清除任何已经完成的初始化行为,例如删除数据表(一般是临时表)。注意,无论你的报表是否能够成功运行,这个触发器总会触发。
3. Between Pages :Fires before each page of the report is formatted, except the very first page. This trigger can be used for customized page formatting. In the Previewer, this trigger only fires the first time that you go to a page. If you subsequently return to the page, the trigger does not fire again
Between Pages触发器将在除第一页的其它每一页编排之前触发。这触发器能够用来定制报表页的编排。在预览时候,这触发器只在你转到某一页时触发。假如接着你返回到已经预览过的报表页时,触发器不会再触发。Before Parameter Form: Fires before the Runtime Parameter Form is displayed. From this trigger, you can access and change the values of parameters, PL/SQL global variables, and report-level columns. If the
1. Runtime Parameter Form is suppressed, this trigger still fires. Consequently, you can use this trigger for validation of command line parameters.
Before Parameter Form触发器将在Runtime Parameter Form(运行时刻参数输入表框)显示之前触发。通过这触发器,你能够存取和改变参数、PL/SQl中全局变量和报表级别列的值。假如Runtime Parameter Form被终止,这触发器仍然会触发。因此,你能够用它来验证命令行参数的有效性。
2. After Parameter Form :Fires after the Runtime Parameter Form is displayed. From this trigger, you can access parameters and check their values. This trigger can also be used to change parameter values or, if an error occurs, return to the Runtime Parameter Form. Columns from the data model are not accessible from this trigger. If the Runtime Parameter Form is suppressed, the After Parameter Form trigger still fires. Consequently, you can use this trigger for validation of command line parameters or other data.
After Parameter Form触发器将在Runtime Parameter Form(运行时刻参数输入表框)显示之后触发。通过这触发器你可以存取和核对参数的值。当错误发生时,这触发器能够改变参数的值并返回给Runtime Parameter Form。Data Model中的列对这触发器是不可见的,
假如Runtime Parameter Form被终止,这触发器仍然会触发。因此,你能够用它来验证命令行参数的有效性。
1.2 Report trigger order of execution(Trigger执行顺序)
The order of events when a report is executed is as follows:
Before Parameter Form trigger is fired.
1. Runtime Parameter Form appears (if not suppressed).
2. After Parameter Form trigger is fired (unless the user cancels from the Runtime Parameter Form).
3. Report is "compiled."
4. Queries are parsed.
5. Before Report trigger is fired.
6. SET TRANSACTION READONLY is executed (if specified via the READONLY argument or setting).
7. The report is executed and the Between Pages trigger fires for each page except the last one. (Note that data can be fetched at any time while the report is being formatted.) COMMITs can occur during this time due to any of the following—user exit with DDL, SRW.DO_SQL with DDL, or if ONFAILURE=COMMIT, and the report fails.
8. COMMIT is executed (if READONLY is specified) to end the transaction.
9. After Report trigger is fired.
10. COMMIT/ROLLBACK/NOACTION is executed based on what was specified via the ONSUCCESS argument or setting.
1.3 Report trigger restrictions(报表中触发器的一些约定)
1. If you are sending your report output to the Runtime Previewer or Live Previewer,you should note that some or all of the report triggers may be fired before you see the report output. For example, suppose that you use SRW.MESSAGE to issue a message in the Between Pages trigger when a condition is met. If there are forward references in the report (e.g., a total number of pages displayed before the last page),
Report Builder may have to format ahead to compute the forward references. Hence, even though you have not yet seen a page, it may already have been formatted and the trigger fired.
例如,假如当条件符合时候,你用SRW.MESSAGE在Between Pages Trigger中发布消息。如果报表中有提前引用变量(例如,一总页数在最后页之前显示),Report Builder将事先计算这提前引用变量.因此,即使你没有看到一页报表,但这页报表已经编排了,而且触发器也触发了。
2. In report triggers, you can use the values of report-level(报表级) columns and parameters. For example, you might need to use the value of a parameter called COUNT1 in a condition (e.g., IF :COUNT1 = 10). Note, though, that you cannot reference any page-dependent columns (i.e., a column with a Reset At of Page) or columns that rely on page-dependent columns.
注意,你不能够引用任何页级列(例如,设置为Reset At of Page的列),和依赖于页级的列。
3. In the Before and After Parameter Form, and Before and After Report triggers, you can set the values of parameters (e.g., give them a value in an assignment statement,:COUNT1 = 15). In the Before and After Report triggers, you can also set the values of report-level, placeholder columns.
在Before and After Report triggers中,你能够给参数,报表级的占位列赋值。
4. In the Between Pages trigger, you cannot set the values of any data model objects. Note also that the use of PL/SQL global variables to indirectly set the values of columns or parameters is not recommended. If you do this, you may get unpredictable results.
在Between Pages trigger中你不能对任何Data Model对象赋值。同样要注意用PL/SQL全局变量间接去给列或参数赋值也是不提倡的。如果你那样做的话,你可能取得意想不到的结果。
If you run a report from Report Builder Runtime (i.e., not the
1. command line or SRW.RUN_REPORT), you should commit database changes you make in the Before Parameter Form, After Parameter Form, and Validation triggers before the report runs. When running in this way, these triggers will share the parent process’ database connection. When the report is actually executed, however, it will establish its own database connection.
2. A lexical reference cannot be used to create additional bind variables after the After Parameter Form trigger fires. For example, suppose you have a query like the following (note that the WHERE clause is replaced by a lexical reference):
SELECT ENAME, SAL FROM EMP &where_clause
If the value of the WHERE_CLAUSE parameter contains a reference to a bind variable, you must specify the value in the After Parameter Form trigger or earlier. You would get an error if you supplied the following value for the parameter in the Before Report trigger. If you supplied this same value in the After Parameter Form trigger, the report would run.
WHERE SAL =: new_bind
如果Where表达式引用绑定变量,你必须在After Parameter Form trigger中或者更早指定它的值。假如你在Before Report trigger给参数赋下面的值,将报错。
Reprot中的五个Trigger说明的更多相关文章
- Odoo中的五种Action详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的 ...
- 探究JavaScript中的五种事件处理程序
探究JavaScript中的五种事件处理程序 我们知道JavaScript与HTML之间的交互是通过事件实现的.事件最早是在IE3和Netscape Navigator 2中出现的,当时是作为分担服务 ...
- Oracle--数据库中的五种约束
数据库中的五种约束 数据库中的五种约束及其添加方法 五大约束 1.--主键约束(Primay Key Coustraint) 唯一性,非空性 2.--唯一约束 (Unique Counstraint ...
- XML中的五个保留字符及实体引用
字符名称 字符 实体引用 和 & & 大于号 > > 小于号 < < 单引号 ‘ ' 双引号 “ " 在XML文档中,构成元素内 ...
- Java中的五种单例模式实现方法
[代码] Java中的五种单例模式实现方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...
- ADO.NET中的五大内置对象
ADO.NET中的五大内置对象 学习链接:https://blog.csdn.net/wxr15732623310/article/details/51828677
- JS中的五种去重方法
JS中的五种去重方法 第一种方法: 第二种方法: 第三种方法: 第四种方法: 第五种方法:优化遍历数组法 思路:获取没重复的最右一值放入新数组 * 方法的实现代码相当酷炫,* 实现思路:获取没重复的 ...
- js进阶 12-13 jquery中one方法和trigger方法如何使用
js进阶 12-13 jquery中one方法和trigger方法如何使用 一.总结 一句话总结: 1.one()方法和on()方法的区别是什么? 除了one()只执行一次,其它和on()一模一样,包 ...
- Linux 中的五种 IO 模型
Linux 中的五种 IO 模型 在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一 ...
随机推荐
- RF Analyzer for Android 安卓平台连接HackRF的App
Over the last week I've been working on a new project, trying to build a spectrum analyzer for Andro ...
- Android应用增加计时器
昨天写的Sudoku游戏需要增加计时器功能,使用Chronometer实现如下,由于Chronometer自己在调用stop之后后台的计时器还会继续增加,所以暂停功能需要额外实现: 在StartAct ...
- 【LeetCode OJ】Path Sum
Problem Link: http://oj.leetcode.com/problems/path-sum/ One solution is to BFS the tree from the roo ...
- 【转】LokiJS:纯JavaScript实现的轻量级数据库
原文转自:http://www.html5cn.org/article-7091-1.html LokiJS一个轻量级的面向文档的数据库,由JavaScript实现,性能高于一切.目的是把JavaSc ...
- Python KNN算法
机器学习新手,接触的是<机器学习实战>这本书,感觉书中描述简单易懂,但对于python语言不熟悉的我,也有很大的空间.今天学习的是k-近邻算法. 1. 简述机器学习 在日常生活中,人们很难 ...
- linux的软硬链接的特性
硬链接的特征: 1.拥有相同的i节点和储存block块,可以看作是同一个文件 2.可以通过i节点识别 3.不能跨分区 4.不能针对目录使用 软链接的特征: 1.类似于windows的快捷方式 2.软链 ...
- SQLite语句练习题
1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在 ...
- (MST) HDOJ 1102 Constructing Roads
怎么说呢 这题就是个模板题 但是 hud你妹夫啊说好的只有一组数据呢??? 嗯??? wa到家都不认识了好吗 #include <cstdio> #include <cstring& ...
- Qt之阴影边框(转)
原文地址:http://blog.sina.com.cn/s/blog_a6fb6cc90101eoc7.html 阴影边框很常见,诸如360以及其他很多软件都有类似效果,了解CSS3的同学们应该都知 ...
- [转帖]DAS、NAS、SAN、iSCSI 存储方案概述
目前服务器所使用的专业存储方案有DAS.NAS.SAN.iSCSI几种.存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储: (1)封闭系统主要指大型机. (2)开 ...