ENUM中的BASE TYPE如何工作?

2020-08-30 01:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


 TYPES ty_x TYPE x LENGTH 4。
 TYPES:枚举的开头ty_enum BASE ty_x,
         val0值是初始值,
         val1 VALUE 1
         val2 VALUE 2
         val3 VALUE 32,
       枚数结尾ty_enum。

 数据z类型ty_x。
 z = val1。
 

" VAL1"的类型不能转换为" Z"的类型

那么基本类型是如何工作的?..我想对没有CONV的枚举进行一些操作。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


 TYPES ty_x TYPE x LENGTH 4。
 TYPES:枚举的开头ty_enum BASE ty_x,
         val0值是初始值,
         val1 VALUE 1
         val2 VALUE 2
         val3 VALUE 32,
       枚数结尾ty_enum。

 数据z类型ty_x。
 z = val1。
 

" VAL1"的类型不能转换为" Z"的类型

那么基本类型是如何工作的?..我想对没有CONV的枚举进行一些操作。

付费偷看设置
发送
3条回答
SAP浪
1楼 · 2020-08-30 02:04.采纳回答

基本类型确定枚举类型的内部表示形式,但仍然需要在枚举和基础类型之间进行转换。

 TYPES:
   开始于ENUM大小,
     s,m,l,xl,xxl,
   END OF ENUM大小。

 数据:尺寸TYPE尺寸,
       诠释类型i。

 大小= CONV#(2)。
 int = CONV#(xl)。
 

根据我的理解,枚举类型对于值比较而言是最佳的。 当用于此目的时,基本类型就无关紧要了:

 CLASS demo DEFINITION。
   公共部分。
     类型:
       开始于ENUM大小,
         s,m,l,xl,xxl,
       END OF ENUM大小。
     分类方法主要
       导入尺寸TYPE尺寸。
 ENDCLASS。

 类演示实施。
   方法主要。
     案例大小。
       何时
         ...
       什么时候
         ...
       何时
         ...
       当别人。
         ...
     结束。
   终结法。
 ENDCLASS。
 

如果您主要对基础类型的操作感兴趣,那么"常规"常量将更适合您:

 TYPES ty_x TYPE x LENGTH 4。

 常数:开始为val,
         0值是初始值,
         1值1
         2值2,
         3值32,
       VAL OF END。

 数据:z,y类型ty_x。

 z = val-0。
 y = val-0 + val-1。
 
黑丝骑士
2楼-- · 2020-08-30 02:05

val1的类型为ty_enum,因此应声明DATA z TYPE ty_enum。

zhangjiyang1323
3楼-- · 2020-08-30 02:02

我同意ABAP枚举可能会被记住 尝试,但不会被开发人员采用,因为它很容易出错并且处理起来太复杂。 我真的很失望,现在回到结构化常量。

一周热门 更多>