- SAP ABAP 教程
- SAP ABAP - 首页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量与字面量
- SAP ABAP - 运算符
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期与时间
- SAP ABAP - 数据格式化
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 域
- SAP ABAP - 数据元素
- SAP ABAP - 表
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁定对象
- SAP ABAP - 模块化
- SAP ABAP - 子程序
- SAP ABAP - 宏
- SAP ABAP - 函数模块
- SAP ABAP - 包含程序
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态性
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话编程
- SAP ABAP - 智能表单
- SAP ABAP - SAPscript
- SAP ABAP - 用户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加功能 (Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
SAP ABAP - 对象事件
事件是在类中定义的一组结果,用于触发其他类中的事件处理程序。当触发事件时,我们可以调用任意数量的事件处理程序方法。触发器与其处理程序方法之间的链接实际上是在运行时动态确定的。
在正常的调用方法中,调用程序确定需要调用哪个对象或类的哪个方法。由于并非为每个事件注册固定的处理程序方法,因此在事件处理的情况下,处理程序方法确定需要触发的事件。
类的事件可以通过使用 RAISE EVENT 语句来触发同一类的事件处理程序方法。对于事件,可以使用 FOR EVENT 子句在同一类或不同类中定义事件处理程序方法,如下面的语法所示:
FOR EVENT <event_name> OF <class_name>.
与类的类似方法一样,事件可以具有参数接口,但它只有输出参数。输出参数由 RAISE EVENT 语句传递给事件处理程序方法,该语句接收它们作为输入参数。事件通过使用 SET HANDLER 语句在程序中动态地与其处理程序方法链接。
当触发事件时,应该在所有处理类中执行适当的事件处理程序方法。
示例
REPORT ZEVENT1. CLASS CL_main DEFINITION. PUBLIC SECTION. DATA: num1 TYPE I. METHODS: PRO IMPORTING num2 TYPE I. EVENTS: CUTOFF. ENDCLASS. CLASS CL_eventhandler DEFINITION. PUBLIC SECTION. METHODS: handling_CUTOFF FOR EVENT CUTOFF OF CL_main. ENDCLASS. START-OF-SELECTION. DATA: main1 TYPE REF TO CL_main. DATA: eventhandler1 TYPE REF TO CL_eventhandler. CREATE OBJECT main1. CREATE OBJECT eventhandler1. SET HANDLER eventhandler1→handling_CUTOFF FOR main1. main1→PRO( 4 ). CLASS CL_main IMPLEMENTATION. METHOD PRO. num1 = num2. IF num2 ≥ 2. RAISE EVENT CUTOFF. ENDIF. ENDMETHOD. ENDCLASS. CLASS CL_eventhandler IMPLEMENTATION. METHOD handling_CUTOFF. WRITE: 'Handling the CutOff'. WRITE: / 'Event has been processed'. ENDMETHOD. ENDCLASS.
上述代码产生以下输出:
Handling the CutOff Event has been processed
广告