动态声明变量名

Sun*_*her 0 variables abap declaration dynamic

任务是创建具有动态名称的变量。不是类型,而是名称!
向我提出的所有方法(例如通过cl_abap_typedescrcl_abap_elemdescr类)都是无用的。
我想在语义上实现这样的东西,但这个语法是不正确的:

CREATE DATA (name) TYPE var_type.
Run Code Online (Sandbox Code Playgroud)

有什么解决办法吗?

小智 5

我认为如果将“名称”声明为字段符号,它将起作用。

效果 该语句声明了一个名为 的符号字段。在运行时,您可以使用 ASSIGN 将具体字段分配给字段符号。使用字段符号执行的所有操作都会直接影响分配给它的字段。

试试这个:

data:
  b_1 type i,
  b_2 type i,
  b_3 type i,
  b_4 type i,
  num1(1) type n,
  fldname type fieldname.

FIELD-SYMBOLS:
  <fld> type i.

do 4 times.
  num1 = sy-index.
  CONCATENATE 'B_' num1 into fldname.
  ASSIGN (fldname) to <fld>.
  <fld> = sy-index.
enddo.

write: b_1, b_2, b_3, b_4.
Run Code Online (Sandbox Code Playgroud)