I 'd rather regret the things I've done
t han regret the things I haven't done.
我宁可后悔我曾做过的事,也不要懊悔我从未去做。
1
程序效果
**
**
2
源码分享
**
**
BEGIN OF gty_student ,
name ( 10 ) TYPE c , "姓名
gender TYPE c , "性别
age TYPE i , "年龄
id ( 10 ) TYPE n , "学生ID
class ( 10 ) TYPE c , "班级
score TYPE p DECIMALS 1 , "成绩
level ( 10 ) TYPE c , "级别
ispass TYPE c , "是否通过
END OF gty_student .gt_student TYPE TABLE OF gty_student ,
gs_student TYPE gty_student .
gt_student = VALUE # ( LET pre = 'Student'
random = cl_abap_random_int => create ( seed = CONV # ( sy \- timlo
) min = 0 max = 100 ) IN
FOR n = 1 UNTIL n > 10
( id = n
name = |{ pre } { n }|
gender = COND # ( WHEN n < 6 THEN '男'
ELSE '女' )
age = 10 \+ n
class = |{ n }班|
score = random -> get_next ( ) ) ).
*&\----------------------------------------------------------------------
*& 3\. VALUE关键字 理解:赋值语句
*&\----------------------------------------------------------------------
*& 语法:Variables: VALUE dtype|#( )
*& Structures: VALUE dtype|#( comp1 = a1 comp2 = a2 … )
*& Tables: VALUE dtype|#( ( … ) ( … ) ( … ) … )
*&\----------------------------------------------------------------------
DATA ( lv_var ) = VALUE i ( ).DATA ls_stu01 TYPE gty_student .
ls_stu01 = VALUE # ( name = 'Tom' gender = '男' age = 20 ).DATA ( ls_stu02 ) = VALUE gty_student ( name = 'Jack' gender = '男'age = 18 ).
DATA lt_stu01 TYPE TABLE OF gty_student .
lt_stu01 = VALUE # ( ( ls_stu01 )( ls_stu02 )
( )
( name = 'Lisa' gender = '女' age = 18 ) ).
TYPES lty_t_student TYPE TABLE OF gty_student WITH EMPTY KEY .
DATA ( lt_stu02 ) = VALUE lty_t_student ( ( name = 'Tom' gender ='男' age = 20 )
( name = 'Lisa' gender = '女' age = 18 ) ).
"Range:不带表头
DATA r_data TYPE RANGE OF i .
r_data = VALUE # ( sign = 'I' option = 'BT' ( low = 10 high =
20 )
( low = 100 high = 150 )
option = 'GT' ( low = 180 )
option = 'LT' ( low = 200 )
option = 'EQ' ( low = 8 )
sign = 'E' option = 'BT' ( low = 15 high = 18 ) ).
"Range:带表头
RANGES : r_erdat FOR usr02 \- erdat .
r_erdat[] = VALUE # ( sign = 'I' option = 'BT' ( low =
'20210101' high = '20210301' )
sign = 'E' option = 'BT' ( low = '20210201' high = '20210228' )
).
3
AI解释
仅供参考
这段ABAP代码主要介绍了ABAP中新引入的VALUE关键字的用法,其中核心点如下:
** 初始化变量: **
使用 ` DATA(lv_var) = VALUE i( ). ` ,在声明变量的同时使用VALUE初始化,确保变量被正确赋予默认值。**结构体初始化:**
使用 ` ls_stu01 = VALUE #( name = 'Tom' gender = '男' age = 20 ). `,通过VALUE初始化结构体 ` gty_student ` 的实例。
**内表初始化:**
使用 ` lt_stu01 = VALUE #( ( ls_stu01 ) ( ls_stu02 ) ( ) ( name = 'Lisa' gender
= '女' age = 18 ) ). ` ,通过VALUE初始化内表 ` lt_stu01 ` ,包含了不同的结构体实例。**内表类型初始化:**
使用 ` lt_stu02 = VALUE lty_t_student( ( name = 'Tom' gender = '男' age = 20 ) (
name = 'Lisa' gender = '女' age = 18 ) ). ` ,通过VALUE初始化带有特定类型的内表 ` lt_stu02` 。
**范围表初始化:**
使用 ` r_data = VALUE #( sign = 'I' option = 'BT' ( low = 10 high = 20 ) ( low
= 100 high = 150 ) option = 'GT' ( low = 180 ) option = 'LT' ( low = 200 )
option = 'EQ' ( low = 8 ) sign = 'E' option = 'BT' ( low = 15 high = 18 ) ).
` ,通过VALUE初始化范围表 ` r_data ` ,其中包含多个范围值。
**带表头的范围初始化:**
使用 ` r_erdat[] = VALUE #( sign = 'I' option = 'BT' ( low = '20210101' high =
'20210301' ) sign = 'E' option = 'BT' ( low = '20210201' high = '20210228' )
). ` ,通过VALUE初始化带有表头的范围表 ` r_erdat ` ,包含多个范围值。
VALUE关键字的使用能够简化初始化操作,使代码更为简洁和可读。通过这些例子,你可以向新手解释如何使用VALUE关键字进行不同类型数据的初始化。
以上是今日分享,希望对你有所帮助~~~
欢迎点赞、留言、分享
往期推荐
[ ABAP 新语法-构建演示数据
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495390&idx=1&sn=55b0041df577df441aecbbe5891acfd6&chksm=cf0a3a30f87db326b5fde73627d116158d2ada96a929979de6705ab67a6fbfd0a686f11455b4&scene=21#wechat_redirect)
[ ABAP 新语法-DATA、FIELD-SYMBOL
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495411&idx=1&sn=b1b305a357e0704b39c885a63d772c7d&chksm=cf0a3a1df87db30b55bbabb6862694ca5f23265683895a30f278d26b10530686790f6ca412fa&scene=21#wechat_redirect)
[ ABAP 新语法-ITAB[ idx ]、ITAB[ key ]
](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495421&idx=1&sn=5bf5211e0efd337c99f468b404a74241&chksm=cf0a3a13f87db30581864047c526686107ab52627f151d2a7b351ffc4042ccf0c663e2bc90c6&scene=21#wechat_redirect)
点个 在看 你最好看