
可执行程序的特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。我们可以在 SE38 中直接点击执行按钮或按 F8 键来运行一个可执行程序。
可执行程序包含一些预定义的过程块,比如 INITIALIZATION、AT SELECTION-SCREEN、START-OF-SELECTION、END-OF-SELECTION 等等,有一个后台系统程序会控制可执行程序,按照规定的顺序依次调用这些过程块。首先显示一个选择屏幕,最后输出一个列表。可执行程序还能指定一个逻辑数据库,逻辑数据库也是一种程序,悔尘毕它按照预定义好的数据库表结构,依次根据主键读取相关的业务数据,可以用 SE36 查看逻辑数据库。
为屏幕绘制器画出的屏幕所用的模块池 (程序类型为 M)
模块池包含了来自业务的屏幕模块的处理步骤,它只能通过事务码或者菜单功能调用。
包含程序 (程序类型为 I)
包含了不能独立运行的程序代码,也就是说,无论你是在 SE38 里用执行功兄团能还是通过事碧芹务码或菜单调用,都无法打开一个包含程序。它们的作用主要是让程序变得清晰和可以被重用,在其他程序里,用 INCLUDE 语句可以把一个包含程序加到程序里。最终的效果相当于用被包含的程序里的全部内容替换调 INCLUDE 语句。
子程序 (程序类型为 S)
这种类型的程序里只包含被外部 PERFORM 语句调用的程序块。也就是说,只包含形如 FORM ... ENDFORM 块的程序代码,从外部程序里,用 PERFORM IN PROGRAM [IF FOUND]. 来调用。
函数组 (程序类型为 F)
这类程序包含了函数模块。函数组和函数模块用函数制作器进行管理,事务码 SE37。在创建函数组和函数模块时,函数制作器把程序类型设置为 F。
接口池 (程序类型为 J)
包含了接口。类和接口都在类制作器中管理,事务码 SE24。
类池 (程序类型为 K)
包含了类。类和接口都在类制作器中管理,事务码 SE24。
数据类型的作用:用来定义数据变量。ABAP按照定义的方式
1.预定义数据类型:SAP中预定义的类型
关于预定义数据类型:
数字类型:
I(整数类型) 默认初始值是0(4Byte)
P(小数类型)默认初始值是0 在定义数据类型P时,需要指定小数位数。(8byte)(可变长度为1-16byte)
P类型1字节前两位由数字构成,后面几位是符号位。
如:DATA test TYPE P LENGTH 10 DECIMALS 3.
这里定义了一个p型变量test 长度是10,小数位数是3.
字符类型:
C(char/文本类型) 默认初始值为空(1byte)
D(日期类型) 格式为:YYYYMMDD 默认初始值是'00000000'.(8byte)sy-datum(存储当天日期的变量)
T(时间类型) 格式为: HHMMSS 默认初始值是‘000000’(6byte)sy-uzeit(存储现在时刻的变量)
字符串类型:STRING 默认长度为0,有效长度为任意长度,默认值为空字符串。
这表示定义STRING类型变量不需要指定长度
在定义预定义数据类型时,我们知道所有数据类型都具有初始值,那么使用VALUE选项就可以设置初始值
如果使用VALUE IS INITAL语句,则变量使用默认初始值。(省略此语句,结果相同)
这里就知道了预定义数据类型可以分为:1.预定义可变长度数据类型
改卖燃 2.预定义固定长度数据类型
在定义预定义数据类型的变量时,D,F,I不用指定长度,而C,N,X需要指定其长度,其中类型P
还需要指定小数位数。(DECIMALS).
2.全局数据类型(数据字典类型):SE11里定义的数据类型, 所有程序都可以使用的数据类型 。
全局数据类型顾名思义就是所有程序都可以使用的数据类型。
3.局部数据类型(用户自定义的数据类型):用户程序中 使用TYPES关键字来自定义的数据类型核虚
如:TYPES ty_var_c10 TYPE c LENGTH 10. "这里就定义了一种长度为10的字符类型ty_var_c10
DATA,TYPES,和TYPE 的区别
DATA 是用来直接声明实际的变量,可以指定变量类型是 预定义类型或自定义类型
DATE c1 TYPE c LENGHT 10.
TYPES是用来定义局部数据类型的,定义的是类型而不是变量
TYPES ty_var_c10 TYPE c LENGTH 10.
这里的ty_var_c10 就时用户自定义的数据类型。
TYPE是用来指定类型的,当TYPE和DATA关键字一起使用时,则是用于定义变量的类型;
当TYPE和TYEPES关键字一起使用时配简,就是用于定义自定义类型。
LINK(用来定义数据变量的类型)
DATA: gv_num3 LINK gv_num1. 这里LINK的作用就是定义变量gv_num3且它的数据类型为gv_num1.
按结构区分的数据类型
基本数据类型:固定长度数据类型
可变长度数据类型
参考数据类型:数据参考类型
对象参考类型
复杂数据类型:结构类型
表类型
ABAP程序的源代码结构主要包括数据定义和处孙神毕理块两部分1)数据定义:整个程序中可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Object中自定义的类和接口瞎袜。
2)处理块(Processing Blocks):是ABAP的主要哦结构单元,定义程序在不同状态下执行的具体功能,在编译运行中,每一块都是一个独立的实体。数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他的所有语句都必须隶属于某个处理块。
1、ABAP程序包含3种类型的处理块
(1)事件块(Event Blocks):每一个事件都需要有一个时间关键字引导,并单独构成一个语句,其后续语句隶属于该关键字代表的时间块,直到下一个关键字出现为止,包括报表事件、列表事件、屏幕事件等。
1)初始化:INITIALIATION
2)数据选择开始:START-OF-SELECTION
3)列表行选择:ATLINE-SELECTION
4)屏幕输出前处理:PROCESS BEFORE OUTPUT
5)屏幕输入后处理:PORCESS AFTER INPUT
(2)对话模块(Dialog Modules):开始和结束都有相关的关键字作为标志,是相对独立的程序单元。
(3)过则芹程(Procedures):代码部分的开始和结束都有相关的关键字,也是相对独立的程序单元。过程包括功能模块和子程序,以及对象中类方法。可以被其他的模块调用,实现程序模块化和代码复用。
2、处理块调用
处理块是程序代码模块,也是远行期间的单元,其具体出现的顺序与其在程序代码中的先后顺序无关。
3、事件驱动
在各种处理块中,系统对事件块的调用过程有其特殊性:其调用总是与某件事地发生相关,也成为事件的触发。
4、处理块与工作过程
通过调度机(Dispatcher)把应用程序的各个代码模块分解成许多对话步骤,并通过工作过程(Work Processes,是系统的软件元素)在系统的应用层的虚拟机上进行处理,这保证了ABAP程序运行时的系统硬件平台无关性。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)