SAP ABAP 数据类型P类型详解

  1.     ABAP中比较难以理解的是P类型的使用,P类型是一种压缩类型,主要用于存储小数,定义时要指定字节数和小数点位数,定义语法如下:

         DATA: name(n) TYPE P decimals m,n代表字节数,最大为16,m是小数点位数,最大为14,所以n长度的存2*n-1个数,m个小数。

         如果对P类型赋值的整数部分超过了其定义的最大长度,则出现异常。小数部分可以随意赋值但是按四舍五入的原则取值。

  2. 定义语法:DATA: m(n) TYPE P decimals i value '123.45'.
     
  3. P类型又名压缩类型。默认大小8字节,初始值0。
  4. P类型按位进行数字存储。每四位存放一个数字。符号位也占用四位。除去符号位之外默认P类型可以存放15个整型数字。
  5. P类型可以定义的有效长度可以是1到16个字节。对于长度为1字节的P类型。除去符号位之外只能存放1个整型数字。对于长度为16字节的P类型。除去符号位之外只能存放31个整型数字。
  6. P类型最多可以定义14位的小数位。
  7. P类型最多可以存放的数字是2*n-1(包括小数位,点号不计算在内)。
  8. 如果对P类型赋值的整数部分超过了其定义的最大长度,则赋值异常。小数部分可以随意赋值但是按四舍五入的原则取值。
  9. 如果对P类型赋值的整数部分等于其定义的最大长度则从整数部分从后往前取出等于小数位数的位数赋给小数位,其它的赋给整数位。原来的小数位忽略。
  10. 如果对P类型进行赋值而没有定义小数位,然而所赋值有小数位(具有小数点),则所赋值一律当作整数看待赋给所定义P类型变量。例如:DATA: m TYPE p VALUE '12.36'.WRITE: / m.运行此段代码输出的结里m是12(原文写的是1236,不知道作者有没有测试)。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值