ABAP新语法(2)
(2022-09-03 14:01:44)
标签:
abapalvf4liumengsap |
分类: 偶尔会用到的东西 |
我自己多多少少有点怀旧,不太使用新语法。
但是这个项目,周边小孩都比我小十来岁,人家还是很喜欢研究新东西的,而且项目里很多代码,确实都是用的新语法。
不用也得能看懂吧。索性也鼓捣鼓捣。
内表 filter
REPORT ZLM_FILTER.TYPES: BEGIN OF TY_FILTER,CITYFROM TYPE SPFLI-CITYFROM,CITYTO TYPE SPFLI-CITYTO,END OF TY_FILTER,*& 需要是排序表或者哈希表* TY_FILTER_TAB TYPE SORTED TABLE OF TY_FILTER WITH UNIQUE KEY CITYFROM CITYTO.TY_FILTER_TAB TYPE HASHED TABLE OF TY_FILTER WITH UNIQUE KEY CITYFROM CITYTO.*& 查询所有数据SELECT * FROM SPFLI INTO TABLE @DATA(LT_SPLFI).SORT LT_SPLFI by CITYFROM.*筛选数据DATA(LT_FILTER) = VALUE TY_FILTER_TAB(( CITYFROM = 'NEW YORK' CITYTO ='SAN FRANCISCO' )( CITYFROM = 'FRANKFURT' CITYTO = 'NEW YORK' ) ).DATA(LT_RESULT) = FILTER #( LT_SPLFI IN LT_FILTERWHERE CITYFROM = CITYFROMAND CITYTO = CITYTO ).*排除DATA(LT_EXCEPT) = FILTER #( LT_SPLFI EXCEPT IN LT_FILTERWHERE CITYFROM = CITYFROMAND CITYTO = CITYTO ).CL_DEMO_OUTPUT=>WRITE( LT_SPLFI ).CL_DEMO_OUTPUT=>WRITE( LT_RESULT ).CL_DEMO_OUTPUT=>WRITE( LT_EXCEPT ).CL_DEMO_OUTPUT=>DISPLAY( ).
*版权声明:本文为CSDN博主「尤其是十月的风」的原创文章,遵循CC4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 *原文链接:https://blog.csdn.net/qq_34060435/article/details/117109771*---------------------------------------------------------------------** LET关键字可以使用在VALUE,SWITCH,COND等语句中;* 与 FOR 语句类似,LET 语句中定义的临时变量同样只能在当前语句中使用,* 在其他语句中使用时会检查出语法错误*---------------------------------------------------------------------*TYPES: BEGIN OF TY_DATA,MATNR TYPE MARA-MATNR,MTART TYPE MARA-MTART,MATKL TYPE MARA-MATKL,TEXT1 TYPE CHAR50,END OF TY_DATA.DATA LT_DATA TYPE TABLE OF TY_DATA.LT_DATA = VALUE #(( MATNR = 'MATRIAL-001'MTART = 'WATR'MATKL = '1020'TEXT1 = 'FIRST material' )( MATNR = 'MATRIAL-002'MTART = 'FOOD'MATKL = '1030'TEXT1 = 'SECOND material' )( MATNR = 'MATRIAL-003'MTART = 'WATR'MATKL = '1040'TEXT1 = 'THIRD material' )).DATA(LW_LINE) = VALUE TY_DATA( LETLW_DATA = VALUE #( LT_DATA[ MATNR = 'MATRIAL-001' ] OPTIONAL )LV_STR = 'Date:' && SY-DATUMINMATNR = LW_DATA-MATNRMTART = LW_DATA-MTARTMATKL = LW_DATA-MATKLTEXT1 = LV_STR).CALL METHOD CL_DEMO_OUTPUT=>DISPLAY( LW_LINE ).
Group by
DATA LT_TMP TYPE TABLE OF SFLIGHT.START-OF-SELECTION.SELECT * FROM SFLIGHT INTO TABLE @DATA(LT_SFLIGHT)WHERE PLANETYPE = 'A340-600'.LOOP AT LT_SFLIGHT INTO DATA(LS_SFLIGHT)GROUP BY (CARRID = LS_SFLIGHT-CARRIDCONNID = LS_SFLIGHT-CONNID)ASCENDING INTO DATA(LT_GROUP). LOOP AT GROUP LT_GROUP INTO DATA(LS_GROUP).APPEND LS_GROUP TO LT_TMP.ENDLOOP. CL_DEMO_OUTPUT=>WRITE( LT_TMP ). CLEAR LT_TMP[].ENDLOOP. CL_DEMO_OUTPUT=>DISPLAY( ).
SQL语句:这个有点意思,原来这种截取取数还挺麻烦的。
SELECT * FROM spfliWHERE LEFT( CARRID , 1 ) = 'A'INTO TABLE @DATA(gt_data).CL_DEMO_OUTPUT=>WRITE( gt_data ).SELECT * FROM spfliWHERE RIGHT( CARRID , 1 ) = 'Z'INTO TABLE @DATA(gt_data2).CL_DEMO_OUTPUT=>WRITE( gt_data2 ).SELECT * FROM spfliWHERE SUBSTRING( CARRID , 1,1 ) = 'A'INTO TABLE @DATA(gt_data3).CL_DEMO_OUTPUT=>WRITE( gt_data3 ).SELECT * FROM spfliWHERE SUBSTRING( CARRID , 2,1 ) = 'Z'INTO TABLE @DATA(gt_data4).CL_DEMO_OUTPUT=>WRITE( gt_data4 ).CL_DEMO_OUTPUT=>display( ).
先整理这些吧,别的我回头查查继续补充。
最后附上网上的一张图:
参考资料(不完全统计哈,可能随手给关了)
https://www.cnblogs.com/learnning/p/10647174.html
https://blog.csdn.net/zhongguomao/article/details/104544092
https://blog.csdn.net/Qunending/article/details/124927276?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-6-124927276-blog-104544092.pc_relevant_multi_platform_featuressortv2removedup&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-6-124927276-blog-104544092.pc_relevant_multi_platform_featuressortv2removedup&utm_relevant_index=1

加载中…