`

form 触发器的层次Before、Override、after的区别

 
阅读更多

问题描述:当我们在Form的BLOCK级里面增加了Trigger WHEN-NEW-RECORD-INSTANCE,导致我们的Form在AP上面运行时,按F11查询时,显示的底色是白色 ,标准的是蓝色。

 

问题解决:把Execution Hierarchy属性改为BEFORE就可以了

 

FORM触发器的三个层次:Before、Override、after

英文描述:

Specifies how the current trigger code should execute if there is a trigger with the same name defined at a higher level in the object hierarchy. 


 The following settings are valid for this property:

 Override :      Specifies that the current trigger fire instead of any trigger by the same name at any higher scope.    This is known as "override parent" behavior. 
 Before    :    Specifies that the current trigger fire before firing the same trigger at the next-higher scope.  This is known as "fire before parent" behavior. 
 After       :  Specifies that the current trigger fire after firing the same trigger at the next-higher scope.  This is known as "fire after parent" behavior.

 

触发器实例:

当一个事件发生的时候,Forms Engine可一并触发由低到高3个级别(Item、Block、
Form)的同名事件,如何触发,由定义低级别的事件时所设置的执行层次决定。
Execution Hierarchy:
1、 Override模式,默认模式,不再触发高级别事件
2、 Before模式,触发完本级别的事件后,再触发高级别事件
3、 After模式,先触发高级别事件,再回来触发本级别事件
当然了,如果某一层次我们没定义事件代码,Forms Engine就跳过该级别,直接进入
下一级别。
此外,Block中任何Item发生的事件,都可能引发该Block级事件,所以在Block级写本
属于Item级的事件,要特别性能问题;Form级事件更有类似问题。
例子. WHEN-VALIDATE-ITEM例子
假设:
1、 Item XXX的WHEN-VALIDATE-ITEM的代码是“代码1”,模式是“After”;
2、 Item XXX所在BlockWHEN-VALIDATE-ITEM的代码是“代码2”,模式是
“Override”;
3、 Form级WHEN-VALIDATE-ITEM的代码是“代码3”。
事件:发生Item XXX的WHEN-VALIDATE-ITEM
那么:实际先执行“代码2”,然后执行“代码1”。

分享到:
评论

相关推荐

    java job_触发器例子

    Java Job和触发器是Java应用程序中用于定时任务处理的关键组件,尤其在企业级应用和大数据处理中非常常见。本文将深入探讨Java中的Job和触发器,以及如何通过示例进行应用。 首先,让我们理解什么是Java Job。在...

    Override错误已解决

    ### Override 错误详解与解决方案 #### 一、概述 在进行 Java 开发的过程中,特别是在使用 Eclipse 这样的集成开发环境(IDE)时,开发者可能会遇到一个常见的问题:`Override` 错误。这种错误通常发生在尝试覆盖...

    android @override 报错解决方案

    现象: … java: 1801: method does not override a method from its superclass @Override… 原因: Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 ...

    Quartz触发器的使用DEMO(Spring实现)

    @Override public void execute(JobExecutionContext context) throws JobExecutionException { // 在这里编写任务执行的代码 } } ``` 为了更好地利用Spring的特性,我们可以使用`@Component`注解使这个Job类...

    override abstract virtual interface比较

    C# 中 override、abstract、virtual、interface 的比较 在 C# 编程语言中,override、abstract、virtual、interface 是四个关键字,它们之间存在着紧密的联系,我们经常会遇到 override、abstract、virtual 这三个...

    图解C# new和override的区别.doc

    理解这两者的区别至关重要,因为它们直接影响代码的行为。 首先,我们来看看`new`关键字。`new`关键字用于隐藏基类中的成员,而不是重写它们。这意味着当在派生类中使用`new`关键字修饰一个与基类同名的方法或属性...

    new、abstract、virtual、override,sealed关键字区别和使用代码示例

    C# 中的 new、abstract、virtual、override、sealed 关键字的区别和使用代码示例 摘要:本资源旨在对 C# 中的 new、abstract、virtual、override、sealed 关键字进行详细的解释和比较,并提供实践代码示例,以帮助...

    New与Override重写的区别例子.txt

    ### New与Override重写的区别 在C#编程语言中,`new` 和 `override` 关键字被用于实现多态性。多态性是面向对象编程的一个重要特性,它允许子类继承父类的方法并根据自己的需求进行修改或扩展。然而,`new` 和 `...

    C# new和override的区别分析

    在C#编程语言中,`new` ...在设计类的继承层次时,选择使用 `override` 还是 `new` 应根据实际需求,考虑是否希望子类方法完全替换父类方法的行为,或者只是提供一种新的行为,同时允许在特定场景下回退到父类的行为。

    Delphi面向对象:overload与override[文].pdf

    Delphi面向对象编程之overload与override Delphi面向对象编程中,overload和override是两个非常重要的概念,它们都是面向对象编程的基础概念。本文将详细介绍overload和override的概念、应用场景及实现方法。 一、...

    new和override区别的小例子

    总结一下,`new`和`override`的主要区别在于: 1. `new`关键字隐藏基类成员,而不是覆盖,而`override`关键字则是真正的覆盖。 2. 使用`new`时,调用方法的决定在编译时完成(静态绑定);使用`override`时,决定在...

    new,override,virtual 示例

    在C#编程语言中,`new`、`override`和`virtual`是三个非常重要的关键字,它们用于控制类成员(主要是方法)的行为,涉及到多态性这一核心概念。接下来我们将详细探讨这三个关键字以及它们在实际编程中的应用。 1. `...

    spring添加触发器+quartz

    @Override public void execute(JobExecutionContext context) throws JobExecutionException { // 这里执行你的任务逻辑 work(); } public void work() { System.out.println("当前时间:" + new Date()....

    c# override new base 关系

    在C#编程语言中,`override`、`new` 和 `base` 是三个关键字,它们在处理类继承和方法重写时起着至关重要的作用。理解这三个关键字的关系和用法对于编写可扩展和灵活的代码至关重要。 首先,我们来看 `override` ...

    Override-Overload

    ### Override与Overload的区别 在面向对象编程中,方法重写(Override)和方法重载(Overload)是两个非常重要的概念。它们虽然都涉及到方法名称的重复使用,但是其本质含义、作用以及应用场景有着明显的区别。 ##...

    分享一下@Override标签背后的小秘密

    Java 中的@Override标签的深入理解 @Override标签是一个非常重要的标签,但是一般情况下,我们只是知道它的基本用途,即用于标记方法的重写。但是,这个小小的标签蕴藏着很多有趣的秘密。今天,我们就来深入探讨...

    resource override

    resource override

    spring quartz实现触发器demo(笔记)

    @Override public void execute(JobExecutionContext context) throws JobExecutionException { targetObject.executeTask(); } // 设置注入的目标对象 public void setTargetObject(YourTargetObject target...

Global site tag (gtag.js) - Google Analytics