VALUE#的使用

目录

  • VALUE#的使用
    • 使用 VALUE# 为结构体变量赋值
      • 运行结果
    • 使用VALUE# 为内表进行赋值
      • 运行结果

VALUE#的使用

VALUE#的使用_第1张图片
选择“Z_TEST_LHY”包,点击保存:
VALUE#的使用_第2张图片
点击创建按钮,输入请求号的描述,点击保存:
VALUE#的使用_第3张图片
点击“保存”:
VALUE#的使用_第4张图片

使用 VALUE# 为结构体变量赋值

给reversal这个结构变量进行赋值,使用VALUE #,左侧的obj_type是reversal的变量,右侧的ls_bkpf-awkey是ls_bkpf工作区的awkey变量的值

*&---------------------------------------------------------------------*
*& Report Z_VALUE_TEST_LHY
*&---------------------------------------------------------------------*
*& Author:lhy
*& Created By:lhy
*& Created Date:2024.1.31
*& Type:Report程序
*& Description:测试VALUE #()的使用
*&---------------------------------------------------------------------*
REPORT z_value_test_lhy.

*&---------------------------variable----------------------------------*
DATA reversal TYPE bapiacrev.
DATA ls_bkpf TYPE bkpf.
DATA l_belnr TYPE bkpf-belnr.


*&------------------------------Logic----------------------------------*
l_belnr = |{ '100000215' ALPHA = IN }|.
SELECT SINGLE * FROM bkpf INTO ls_bkpf WHERE bukrs = '1710'
AND belnr = l_belnr
AND gjahr = '2024'
AND xreversal = ''.

"cl_demo_output=>display( ls_bkpf ).
"给reversal这个结构变量进行赋值,使用VALUE #,左侧的obj_type是reversal的变量,右侧的ls_bkpf-awkey是ls_bkpf工作区的awkey变量的值
reversal = VALUE #(
obj_type = ls_bkpf-awkey
obj_key_r = ls_bkpf-awkey
obj_key = ls_bkpf-awkey
pstng_date = ls_bkpf-budat
comp_code = ls_bkpf-bukrs
reason_rev = '02'
).
cl_demo_output=>display( reversal ).

运行结果

VALUE#的使用_第5张图片

使用VALUE# 为内表进行赋值

  1. 使用VALUE 关键字将一个内表的数据赋值给另外一个内表。
  2. is_spfli是临时变量,只是一个临时的结构体,无需在外面定义,作用范围在VALUE # ( )里面。 将临时内表 it_spfli
  3. 对应字段的数据传递给gt_data ,常规写法,使用LOOP循环,对应字段赋值使用VALUE 关键字。
  4. FOR is_spfli IN it_spfli 可以等价于LOOP AT it_spfli INTO is_spfli。
*&---------------------------variable----------------------------------*
TYPES: BEGIN OF ts_spfli,
	carrid TYPE spfli-carrid,
	connid TYPE spfli-connid,
	cityfrom TYPE spfli-cityfrom,
	fltime TYPE spfli-fltime,
END OF ts_spfli.
DATA: gt_data TYPE TABLE OF ts_spfli,
gs_data TYPE ts_spfli.

*&------------------------------Logic----------------------------------*
SELECT * FROM spfli INTO TABLE @DATA(it_spfli).
"cl_demo_output=>display( it_spfli ).

"使用VALUE 关键字将一个内表的数据赋值给另外一个内表。
"is_spfli是临时变量,只是一个临时的结构体,无需在外面定义,作用范围在VALUE # ( )里面。
"将临时内表 it_spfli 对应字段的数据传递给gt_data ,常规写法,使用LOOP循环,对应字段赋值使用VALUE 关键字:
" FOR is_spfli IN it_spfli 可以等价于LOOP AT it_spfli INTO is_spfli.
gt_data = VALUE #( FOR is_spfli IN it_spfli (
carrid = is_spfli-carrid
connid = is_spfli-connid
cityfrom = is_spfli-cityfrom
fltime = is_spfli-fltime
) ).

cl_demo_output=>display( gt_data ).

运行结果

将gt_data内表的值输出来了:
VALUE#的使用_第6张图片

你可能感兴趣的:(SAP,ABAP,其他)