将键值映射到结构

Cold_Class

我有一个键值内部表,想用它填充现有结构。

示例:首先,我获得了一个键值表,该表是通过从两个现有表中读取数据而创建的。

SELECT vals~attr_value, names~attr_name
  FROM atst_attr AS vals
    INNER JOIN tc_attr AS names
      ON vals~tc_attr_id = names~tc_attr_id
  WHERE vals~atst_id = @lv_atst_id
  INTO TABLE @DATA(itab)
  .

现在我的itab看起来像这样:

itab: 
      name      value  
 1. "field_a" "value_a"  
 2. "field_c" "value_c"

我的本地结构(或通常称为工作区)是空的:

l_struc: 
   field_a: ""
   field_b: ""
   field_c: ""

现在,我想填充结构,这是我需要帮助的地方-我希望结果是:

l_struc:field_a:“ value_a” field_b:“” field_c:“ value_c”

如何自动进行从name属性到结构部件名称的映射并设置其值?

约瑟夫·希克赛

就像是:

FIELD-SYMBOLS lv_field TYPE ANY.

LOOP AT itab
     ASSIGNING FIELD-SYMBOL(<ls_itab>).
  ASSIGN COMPONENT <ls_itab>-name
         OF STRUCTURE l_struc
         TO <lv_field>.
  IF sy-subrc EQ 0.
    <lv_field> = <ls_itab>-value.
  ENDIF.
ENDLOOP.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章