访问定义运行时ABAP的字段符号

时间:2017-07-01 17:10:23

标签: abap


我目前正在制作动态报告,我必须编写一些动态查询,而且我被困在一个地方。拜托,如果有人能建议我出路,那就太好了。贝娄我试图解释我在做什么以及我被困在哪里。谢谢。
定义2个字段符号

<o_fs> TYPE table,
<owa_fs> type any.

动态创建o_fs的内部表

CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_cat
IMPORTING
ep_table = d_ref2.
ASSIGN d_ref2->* TO <o_fs>.

然后我填写o_fs中的数据 之后我想在o_fs的一个字段中添加一个值 循环播放

<O_FS> ASSIGNING <OWA_FS>.
 *<owa_fs>-columnname = 'value to be added'.
 IF SY-TABIX = INDEX.
 MODIFY (p_vtab) From <OWA_FS>.
 COMMIT WORK.
 ENDIF.

标记为*的行给出了编译时错误&#34;数据对象&#34;&#34;没有结构,因此没有名为&#39; COLUMNNAME&#39;的组件。叫'COLUMNNAME&#39;&#34;

1 个答案:

答案 0 :(得分:3)

当进行语法检查时,系统不知道字段符号是否是结构化的。您必须将结构组件分配给另一个字段符号。请参阅ASSIGN COMPONENT ...命令。

将命令放入您的示例中:

ASSIGN COMPONENT 'COLUMNMAME' OF STRUCTURE <owa_fs> TO <another_fs>.
IF sy-subrc = 0.
  <another_fs> = 'value to be added'.
ENDIF.

<another_fs>可以是ANY类型。