SAP ABAP 数据类型

26 篇文章 1 订阅

SAP ABAP 基本数据类型

ABAP 类型说明
C如果未在 DATA 语句中指定参数和,则创建长度为 1 的字符
N0到9之间字符组成的数字字符串,如果未在 DATA 语句中指定参数,则创建长度为 1
D日期格式必须为 YYYYMMDD 取值范围:YYYY (year): 0001 to 9999, MM(month): 01 to 12, DD (day): 01 to 31
T格式为 24-hour的 HHMMSS HH:00 to 23 /MM:00 to 59/ SS:00 to 59
I-2.147.483.648 to +2.147.483.647(.点号为千分位分隔符,不是小数点,而,逗号则表示是小数点)如果运算出现非整型的结果(如小数)则进行四舍五入,而不是截断
F小数位最大可以到17位,即可精确到小数点后17位取值范围:-1,7976931348623157EE+308 to -2,2250738585072014EE-308 for the negative area, the value zero, and +2,2250738585072014EE-308 to +1,7976931348623157EE+308 for the positive area.如果要求高精度,则不应该使用类型 F 数据。而应代之以类型 P 数据F赋值时,会转换为标准形式:<±尾数部分>E±<指数部分>,且尾数部分的小数位最多为17位。如果值是小数,则要将值使用引号引起来
P有效长度为1到16个字节。两个数字位压缩后才占一个字节,由于0-9的数字只需要4Bit位,所以一个字节实质上允许存储二位数字,这就是P数 据类型为压缩数据类型的由来,因为定义的的数据长度比存储于内存中要长。并借用最后半个字节,即字面上的一位来存储小数点、正号、负号、或者是这三种中间 的组合————存储的可能是通过将小数点与正负号经过某种位运算后的结果,因为半个字节不可能存储小数或正负号的所对应的ASCII码(都比15大)P类型最多允许14位小数位,即可以精确到小数点后14,再除开小数点与正负号占半个字节,即字面上1位4Bit,此时最大整数位最长可达16*2 = 32 – 1 = 31 -14 = 17位Depending on the field length len(len表示定义时P的整个长度) and the number of decimal places dec(dec表示小数位), the following applies for the value area: (-10^(2len -1) +1) / (10^(+dec)) to (+10^(2len -1) -1) /(10^(+dec)) in steps of 10^(-dec). Values in between this range are rounded off.在计算过程中如果小数部分过长,则进行四舍五入。若小数部分超过长度,则自动按四舍五入将多余的小数除掉;如果整数部分超过长度,则系统运行出错如果值是小数,则要将值使用引号引起来
X十六进制字符 0-9, A-F具体的范围为:00~FF类型X是十六进制类型,可表示内存字节实际内容,使用两个十六制字符表示一个字节中所存储的内容。但直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符如果未在 DATA 语句中指定参数,则创建长度为 1注:如果值是字母,则一定要大写,否则赋值不进DATA: x2(2)TYPE x.x2 = ‘3AA‘.WRITE : / x2."输出赋值时字面上的值:3AA0
STRING在系统内部,长度可变的内置类型(String、XString)是通过引用实际动态的数据对象的固定内存地址来进行操作,因而这两种内置类型和引用类型一样,属于纵深类型。
XSTRING由十六进制字符 0-9, A-F组成字符串。直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符串注:如果值是字母,则一定要大写,否则赋值不进DATA : xs TYPE xstring .xs = ‘303132‘."表示字符串 012WRITE 😕 xs."但输出的还是303132
B0 to 255属于ABAP内部类型,在ABAP程序中不能直接使用
S-32.768 to +32.767属于ABAP内部类型,在ABAP程序中不能直接使用

SAP ABAP 通用类型

除了object,所有的通用类型都能直接用TYPE后面(如 TYPE data,但没有TYPE object,object不能直接跟在TYPE后面,只能跟在 TYPE REF TO后面)

TYPE REF TO 后面可接的通用类型只能是 data(数据引用)或者是 object(对象引用)通用类型,其他通用类型不行:

TYPE REF TO data :表示的是数据引用data references

TYPE REF TO object: 表示的是对象引用object references

ANY代表了除data、 object 任何数据类型

下表为ABAP预置的通用类型。ABAP数据类型继承图。

character-type(字符类型):text fields ©、numeric text fields (n)、date fields (d)、and time fields (t)、text string (string),相应的通用类型为clike

numeric-type(数值类型):Integer (i)、floating point numbers (f)、and packed numbers §,相应的通用类型为numeric.

byte-type(字节类型):Byte fields (x)、byte string (xstring),相应的通用类型为xsequence.

ABAP 类型说明
any table具有任何表类型的内部表
hashed table哈希表
index table索引表
sorted table排序表
standard table标准表
table标准表
data任何数据类型
any任何数据类型
simple基础数据类型,以及只包含character-like扁平组件的数据结构
object任何对象类型(继承层次结构的根类继承层次结构)
以下用在Form或方法的形式参数中
clike类字符(c、d、n、t、字符串和类字符平面结构)
csequenceText-like (c, string)
xsequenceByte-like (x, xstring)
numeric数字(i(b,s),p,decfloat16,decfloat 34,f)

数据字典预置类型

数据字典预置类型ABAP类型 - 运行长度 - 说明
ACCP长度N(6)、会计计算周期
CHARC(n) 1-255 字符
CLNTC(3) 3 集团,数据区域代码
CUKYC(5) 5 货币代码
CURR(n,m)P((n+1)/2)DECIMALm 42736 货币金额
DATSD(8) 8 日期
DEC n,mP((n+1)/2)DECIMALm n(1-31)m(1-17) 数值计算
FLTPF(8) 18 浮点数
INT1X(1)(类型b) 3 单字节整形数
INT2X(2)(类型s) 5 双字节整形数
INT4X(4)(类型i) 10 四字节整形数
LANGC(1) 内部1位外部2位 语言代码
LCHRC(n) 256-最大值 长字符
LRAWX(n) 256-最大值 长位字串
NUMC nN(n) 1-255 数值文字
PRECX(2) 16 精确度
QUAN n,mP((n+1)/2)DECIMALm 42736 数量
RAW nX(n) 1-255 位字串
TIMST(6) 6 时间
VARC nC(n) 255-最大值 长字符(仅3.0前可用)
STRINGSTRING 1-最大值 字符串
RAWSTRINGXSTRING 1-最大值 位字符串
UNITC(n) 2~3 单位

转载自:https://www.cnblogs.com/bolang100/p/7525511.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: REPORT ZTEST.DATA: BEGIN OF ITAB OCCURS 0, VBELN LIKE VBAK-VBELN, VKBUR LIKE VBAK-VKBUR, END OF ITAB.SELECT * FROM VBAK INTO ITAB WHERE VBELN IN S_VBELN.LOOP AT ITAB. WRITE:/ ITAB-VBELN, ITAB-VKBUR. ENDLOOP. ### 回答2: SAP ABAP是一种流行的企业应用程序开发语言,用于在SAP系统中开发各种功能和报表。下面是一个示例的SAP ABAP数据报表代码: REPORT Z_MY_REPORT. DATA: lt_data TYPE STANDARD TABLE OF sflight, ls_data LIKE LINE OF lt_data. SELECT * FROM sflight INTO TABLE lt_data. WRITE: / 'FLIGHT', 'CARRIER', 'PRICE'. LOOP AT lt_data INTO ls_data. WRITE: / ls_data-fldate, ls_data-carrid, ls_data-seatsmax. ENDLOOP. 在这个示例中,我们首先定义了一个内表lt_data,类型为标准表(STANDARD TABLE),并声明了一个内表行ls_data,类型与lt_data的行相同。然后,我们使用SELECT语句从SFLIGHT表中选择所有数据,并将其存储在lt_data内表中。 接下来,我们使用LOOP AT语句循环遍历lt_data内表中的每一行,并将每一行的fldate、carrid和seatsmax字段值显示在屏幕上,使用WRITE语句实现输出功能。 这段代码会生成一个简单的报表,显示所有航班的日期、航空公司和座位最大数量。你可以根据需要修改代码来适应不同的数据源和显示要求。注意,SAP ABAP具有丰富的语法和功能,可以用于更复杂的报表开发和数据处理任务。 ### 回答3: SAP ABAP是一种用于编写SAP系统的应用程序的编程语言。数据报表是SAP系统中经常用于显示和处理数据的工具。以下是一个简单的SAP ABAP数据报表代码的示例: REPORT ZDATA_REPORT. TABLES: ZEMPLOYEE. DATA: GT_EMPLOYEE TYPE TABLE OF ZEMPLOYEE, GS_EMPLOYEE TYPE ZEMPLOYEE. START-OF-SELECTION. SELECT * FROM ZEMPLOYEE INTO TABLE GT_EMPLOYEE. LOOP AT GT_EMPLOYEE INTO GS_EMPLOYEE. WRITE: / GS_EMPLOYEE-EMP_NAME, GS_EMPLOYEE-EMP_DEPARTMENT, GS_EMPLOYEE-EMP_SALARY. ENDLOOP. 上述代码首先声明了一个数据表ZEMPLOYEE,然后定义了两个数据结构:GT_EMPLOYEE和GS_EMPLOYEE。GT_EMPLOYEE是ZEMPLOYEE的内表类型,用于存储从数据库中检索到的数据。GS_EMPLOYEE是ZEMPLOYEE的一行数据。 代码的START-OF-SELECTION部分是数据报表的主体代码。它使用SELECT语句从数据库中选择所有的ZEMPLOYEE数据,并将其存储到GT_EMPLOYEE内表中。 然后,通过LOOP语句遍历GT_EMPLOYEE内表,并使用WRITE语句将每个员工的姓名、部门和薪资输出到屏幕上。 以上代码是一个简单的SAP ABAP数据报表示例,它可以根据具体的需求进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值