SAP事件 Event Flow(转载)
(1)其实就像一个FORM,所以在这个事件里声明的变量都是局部变量。
(2)根据SY-UCOMM这个系统变量可以判断用户的命令
(3)在这个事件里响应的是屏幕上选择条件中的事件,例如CHECKBOX的选择与否,RADIOBUTTON的选择,LISTBOX的选择等等。
所以分为以下几个方面:
1. ... ON field:在PARAMETER变化时触发的事件,对于选择屏幕某字段输入的PAI事件,当该字段的值被传递给程序时被触发,可以应用于改字段本身的正确性检查,如可系统提示错误,则可以在该字段中重新输入,此时其他元素呈灰色,不接受输入
2. ... ON END OF sel:SELECT-OPTION触发的事件,用于整个选择表输入结束后各行的检查
3. ... ON VALUE-REQUEST FOR psel_low_high:当光标位于某屏幕字段时,选择的帮助(F4)
4. ... ON HELP-REQUEST FOR psel_low_high:当光标位于某屏幕字段时,选择的帮助(F1)
5. ... ON RADIOBUTTON GROUP radi:单选按钮事件,必须进行整体输入检查
6. ... ON BLOCK block:框架的触发事件
7. ... OUTPUT:响应屏幕上的事件,修改选择屏幕的唯一方法
实例:
Event in ABAP report determine process flow of a program. The events are triggered depended on the way the output is generated. They begin after event keyword and end when the next event reached.
Event keyword:
INITIALIZATION.
Occurs when report initialized.
We can use it to check user authorization or prepare output for selection screen.
AT SELECTION-SCREEN OUTPUT :
Occurs each time selection screen about to generated.
We can use it to modify selection screen, for example hide / unhide parameter.
AT SELECTION-SCREEN.
Occurs each user command in selection screen. we can use it to perform checking on user input.
START-OF-SELECTION
Occurs after the standard selection screen has been processed.,
data is read in this event.
END-OF-SELECTION
Occurs after start-of-selection.
TOP-OF-PAGE
Occurs when a new page starts.
Use it for write report header.
END-OF-PAGE
Occurs when a page ends.
Use it for write report footer.
AT LINE-SELECTION
Occurs when the user double-click on report.
AT USER-COMMAND
Occurs when the user push toolbar button.
This is program to demonstrate how to use event properly.
REPORT zt_event LINE-COUNT (). *http://abap-gallery.blogspot.com TABLES: sflight. DATA: BEGIN OF t_report OCCURS ,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
END OF t_report. *begin selection screen
PARAMETERS p_datum LIKE sy-datum.
PARAMETERS p_check AS CHECKBOX.
*end selection screen INITIALIZATION.
*begin initialization
MOVE sy-datum TO p_datum.
*end initialization AT SELECTION-SCREEN.
*begin at selection-screen
MESSAGE i888(sabapdocu) WITH 'At selection-screen'.
IF p_check = 'X'.
MESSAGE e888(sabapdocu) WITH 'Clear checkbox'.
ENDIF.
*end at selection-screen AT SELECTION-SCREEN OUTPUT.
*begin at selection-screen output
MESSAGE i888(sabapdocu) WITH 'At selection-screen output'.
*end at selection-screen output START-OF-SELECTION.
*begin start-of-selection.
MESSAGE i888(sabapdocu) WITH 'start-of-selection'.
SELECT * FROM sflight.
MOVE sflight-carrid TO t_report-carrid.
MOVE sflight-connid TO t_report-connid.
APPEND t_report.
ENDSELECT.
*end start-of-selection. END-OF-SELECTION.
*begin end-of-selection.
MESSAGE i888(sabapdocu) WITH 'end-of-selection'.
FORMAT COLOR COL_NORMAL.
DO TIMES.
LOOP AT t_report.
WRITE / t_report-carrid.
WRITE t_report-connid.
ENDLOOP.
ENDDO.
*end end-of-selection. TOP-OF-PAGE.
FORMAT COLOR COL_HEADING.
WRITE 'This is header'. END-OF-PAGE.
FORMAT COLOR COL_TOTAL.
WRITE 'This is footer'. AT LINE-SELECTION.
WRITE: / 'Cursor Row:', sy-curow.
WRITE: / 'Cursor Col:', sy-cucol.
SAP事件 Event Flow(转载)的更多相关文章
- 经典线程同步 事件Event
阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇 一个经典的多线程同步问题> <秒杀多线程第五篇 经典线程同步关键段CS> 上一篇中使用关键段来解决经典的多线程同步互斥问题 ...
- 关于 javascript event flow 的一个bug
[1]描述了firefox,safari 有一个bug和DOM 3 规范不一致:在event.currentTarget等于event.target的时候(即event flow处于target ph ...
- Javascript——浅谈 Event Flow
1.Javascript Events : Event Bubbling(事件冒泡) 如果事件从最特定的元素开始,则事件流中的一个阶段称为事件冒泡(DOM中可能最深的节点)然后向上流向最不特定的节点( ...
- event flow
JS之event flow DOM事件流 1.定义: DOM(文档对象模型)结构是一个树型结构,当一个HTML元素产生一个事件时,该事件会在元素节点与根结点之间的路径传播,路径所经过的结点都会收到该事 ...
- javaScript高级教程(五) Event Flow
1.两个阶段三个模型:Netscape支持事件捕获,IE支持事件冒泡,w3c是先捕获后冒泡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 S ...
- 秒杀多线程第六篇 经典线程同步 事件Event
原文地址:http://blog.csdn.net/morewindows/article/details/7445233 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权” ...
- python线程事件Event(30)
在python项目开发中,线程thread使用是比较常见的,在前面的文章中我们介绍了 python线程的创建 以及 线程互斥锁 ,今天还要额外介绍一个与线程相关的内容 – 事件Event. 一.pyt ...
- libevent源码学习(9):事件event
目录在event之前需要知道的event_baseevent结构体创建/注册一个event向event_base中添加一个event设置event的优先级激活一个event删除一个event获取指定e ...
- 事件EVENT与waitforsingleobject的使用
事件event与waitforsingleobject的配合使用,能够解决很多同步问题,也可以在数据达到某个状态时启动另一个线程的执行,如报警. event的几个函数: 1.CreateEvent和O ...
随机推荐
- Swing实现canvas-nest.js 源码
#### 说明 canvas-nest.js 源码 http://www.bubuko.com/infodetail-2237716.html 地址:https://gitee.com/dgwcode ...
- 项目 08 WebSocket
项目班 08 WebSocket app.py 更新 添加两个路由 handlers = [ ('/', main.IndexHandler), ('/explore', main.ExploreHa ...
- 我的Android Studio配置
Android Studio固然好用,但是刚从Eclipse转移到Android Studio上难免有很多不便,现在集中整理一下AS与Eclipse的区别,使得AS更好用. 快捷键Keymap到Ecl ...
- Migration-添加表(加外键)
public partial class _222 : DbMigration { public override void Up() { //DropForeignKey("dbo.Ass ...
- uoj455 【UER #8】雪灾与外卖
http://uoj.ac/problem/455 题解: https://blog.csdn.net/litble/article/details/88410435 https://www.mina ...
- set<int> 的用法
博客学习:https://blog.csdn.net/yas12345678/article/details/52601454 介绍一下 *max_element(a,a+n) 求取数组最大的元素 ...
- man时括号里的数字是啥意思
https://www.cnblogs.com/istarstar/p/7851233.html 具体含义可以man man来查看(自己查自己). MANUAL SECTIONS The standa ...
- 三,JVM 自带命令行工具之JMap
jmap:java内存映像工具 jmap(Memory Map for java ) 命令用于生成堆转储快照(一般被称为headdump 或dump文件) jmap命令格式:jmap [option ...
- kickstart2019 round_C B. Circuit Board
思路: 这题应该不止一种解法,其中的一种可以看作是leetcode85https://www.cnblogs.com/wangyiming/p/11059176.html的加强版: 首先对于每一行,分 ...
- Hibernate笔记2
一.持久化类 1.持久化标识OID 数据库中叫做主键,对应实体的ID属性即为OID;Hibernate通过OID区分两个对象是否为同一对象;OID的生成一般交由程序自动处理; 2.持久化类 ...