【经验】Oracle Reports中隐藏布局对象的方法及区别
需求描述
在某些特定需求的报表中,可能要求某些布局对象在一定的条件下显示或隐藏。在Oracle reports builder里开发报表时大致有两种方法以供开发者使用。
- 使用Format Trigger(格式触发器)以编程的方式进行控制
- 使用Conditional Formatting(条件格式化)进行控制
二者使用场景不同,下面对这两种方法进行详述。
Format Trigger(格式触发器)
格式触发器是一个在布局对象被最后设定格式之前执行的一个PLSQL函数。该触发器可用来动态地改变布局对象的格式数属性。函数返回值为BOOLEAN类型。若函数返回TRUE,则显示布局对象;FALSE则隐藏该布局对象。
注意:隐藏布局对象,但并不会释放该对象在报表设计模板上所占据的空间。
举例:
1 FUNCTION Object1FormatTrigger RETURN BOOLEAN
2 IS
3 BEGIN
4 IF :OBJECT2 IS NULL THEN
5 RETURN FALSE;
6 END IF;
7 RETURN TRUE;
8 END;
Conditional Formatting(条件格式)
条件格式是一个设置界面,根据开发者在界面上所添加的各种条件所返回的真假来判断对应的布局对象是否显示。
进入条件格式的不走如下:
- 选中布局对象,按快捷键F4进入属性面板,选择图中的Conditional Formatting选项
- 打开后可以添加、编辑和删除判断条件
注意:利用条件格式隐藏的布局对象,其在设计模板上所占据的空间也一并被释放。
二者对比如下:
方法 | 可设条件否? | 可编程? | 是否释放布局空间? |
Format Trigger | 是 | 是 | 否 |
Conditional Formatting | 是 | 否 | 是 |
Enjoy~