数据类型的作用:用来定义数据变量。
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
按结构区分的数据类型
基本数据类型:固定长度数据类型
可变长度数据类型
参考数据类型:数据参考类型
对象参考类型
复杂数据类型:结构类型
表类型
虽然我不懂MM模块,但是你可以在LOOP里面写个AT END OF XXX来完成这个动作,希望我的回答对你有所帮助
LOOP AT itab INTO wa
If wa-SHKZG = 'S'
wa-YI = wa-MENGE
Else
wa-YI = wa-MENGE -1
Endif
MODIFY itab from wa
clear : wa
endloop
因为不懂模块,所以我只能在程序方面上给你解答,模块方面请教别人吧
type group是一种程序类型,即类型池类型的程序,在创建一个Program时,导航会d出窗口让你选择程序类型,默认是可执行程序,下拉列表中许多类型,类型池就是其中之一,但是创建类型池类型的程序并不是在se80 或者 se38中的,而是在se11的TYPE GROUP中创建的,就是你上面提到的数据字典type group
在该类型的程序中,可以定义一些自定义的类型(结构等),比如数据字典中并没有创建的结构,在程序中就无法引用,你可以将该结构声明在类型池程序中上,该程序以 TYPE-POOL 引导
然后在程序中引用该类型池程序,然后程序中就可以使用类型池程序中定义的结构了
在程序中TYPE-POOLS来引用已经存在的类型池程序
type group是一种统一管理类型的程序,有很多便利之处,SAP的标准程序中很多地方都用到的
以上就是关于ABAP的基本数据类型全部的内容,包括:ABAP的基本数据类型、SAP ABAP 程序 解读、abap SE11中数据字典中type group是做什么用的,怎么使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)