在这么多年的SAP使用中,我一直以为不包块在任何事件块内的abap语句sap会自动添加到START-OF-SELECTION事件块中,但今天无意被一个新同事发现不是这样。
仔细查阅SAP的abap语言帮助,帮助对于“不包块在任何事件块内的abap语句”是这样定义的:在REPORT或者PROGRAM 语句到第一个处理块(处理块不仅仅指事件块,也包含过程等)之间出现的语句。这些语句才会自动插于到START-OF-SELECTION事件块中。具体参见示例
示例1
REPORT demo_abap_events_1.
WRITE / 'Statement 1'.
FORM routine.
WRITE / 'Subroutine'.
ENDFORM.
WRITE / 'Statement 2'.
PERFORM routine.
WRITE / 'Statement 3'.
执行的结果:
Statement 1
在该例子中的红色部分语句就没有添加到START-OF-SELECTION事件块中
示例2
REPORT demo_abap_events_2.
WRITE / 'Statement 1'.
FORM routine.
WRITE / 'Subroutine'.
ENDFORM.
START-OF-SELECTION.
WRITE / 'Statement 2'.
PERFORM routine.
WRITE / 'Statement 3'.
执行的结果:
Statement 1
Statement 2
Subroutine
Statement 3
在该例子中的所有语句就没有添加到START-OF-SELECTION事件块中。
当然你按规范的方法写代码就不会出现上面的情况了,规范的代码如下:
REPORT demo_abap_events_3.
START-OF-SELECTION.
WRITE / 'Statement 1'.
WRITE / 'Statement 2'.
PERFORM routine.
WRITE / 'Statement 3'.
FORM routine.
WRITE / 'Subroutine'.
ENDFORM.
另外提醒大家注意的在事件块中定义的变量是全局,且不要认为是事件块范围有效。
详细的变量有效范围说明参见:
http://blog.csdn.net/compassbutton/archive/2007/06/14/1652392.aspx
分享到:
相关推荐
ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...
ABAP-培训教材附录 ABAP-培训教材ABAP-培训教材ABAP-培训教材ABAP-培训教材
CD260-ABAP-in-Eclipse-开发-CN CD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CN
eclipse-abap-keywordcolors eclipse-abap-关键字颜色
ABAP-学习笔记-通用
ABAP-根据T-CODE找用户出口;ABAP-根据T-CODE找用户出口
SAP-ABAP-OO-实现-CL-SALV-TABLE
ABAP-选择屏幕 Dynpros 基础 通过这个屏幕实例可以了解屏幕元素的构成,及屏幕事件。
SAP方丈-ABAP-SAP增强应用实例
SAP-ABAP SELECT-SCREEN 的几个用法 SAP中调用外部程序(RFC) ABAP 读EXCEL 到内表 ABAP总结之BDC完整版 ABAP的面向对象-class的定义 SAP ABAP程序优化方法 table_control中的小操作 ABAP 搜索帮助 ABAP如何自定义...
SAP-ABAP-Certification-Review.pdf
ABAP-数据类型学习笔记
ABAP-EXCEL编程 完整详细例子
SAP初探之ABAP-数据库对象 解释说明 在ABAP里面 面向对象的概念
SAP中文教材全系列之:ABAP中文标准教材-BC400_ZH_Col63_FV_Part_A4 陆续更新中。
ABAP-透明表学习笔记.py
SAP资料集有ABAP-PP-MM-RFC-BAPI-JCO等.rar
ABAP-OLE[借鉴].pdf
ABAP-子程序宏函数学习笔记.py