我尝试将内部表格中的数据添加到自定义表格中。
DATA: BEGIN OF TMP_CTRYGRP_T OCCURS 1000,
CTYGR TYPE /SAPSLL/CTYGR,
TEXT1 TYPE /SAPSLL/TEXT60,
END OF TMP_CTRYGRP_T.
SELECT ctygr, text1 FROM /SAPSLL/CTYGPT INTO TABLE @DATA(lt_countryGroupsTable)
LOOP AT lt_countryGroupsTable ASSIGNING FIELD-SYMBOL(<ls_countryGroups>).
APPEND <ls_countryGroups> TO TMP_CTRYGRP_T.
ENDLOOP.
然后我想在自定义表类型ZZ_T_TAB
中添加该行所以我试图创建一个这个表的字段符号,从中创建一个内部表,但我尝试过的解决方案都没有允许我在Custom表中添加行(即使程序中的那个有线条。)
我主要遇到的问题是:
在unicode程序中不可相互转换。节目......
所以我的问题是:
正如你们中的一些人可能理解的那样,我在ABAP中是一个相当新秀的人。 因此,如果有任何有用的链接可以理解所有这些,我会很高兴,如果你能与我分享。
答案 0 :(得分:0)
OCCURS
,因为它已被宣布为过时且已在类中禁止使用。 将您自己的结构声明为类型,并将自定义内部表标记为TYPE STANDARD TABLE OF struct_type
。这样,就没有上限
TYPES:
BEGIN OF struct_type,
CTYGR TYPE /SAPSLL/CTYGR,
TEXT1 TYPE /SAPSLL/TEXT60,
END OF struct_type.
DATA tmp_ctrygrp_t TYPE STANDARD TABLE OF struct_type WITH EMPTY KEY.
答案 1 :(得分:0)
为什么会发生这种错误?谷歌搜索它没有提供给我一个 可以理解的答案
您不能将APPEND用于不相同的结构。你必须&#34;转换&#34;它之前。在ABAP帮助中查找命令MOVE-CORRESPODING(在编辑器中命令F1)。
目前我使用的内部表限制为1000行。但是我 事先并不知道搜索的行数 提供。有什么办法可以改善吗?
不要使用OCCURS扩展名,不推荐使用(如lausek所写),旧语法。
然后如何将任何解决方案中的行添加到我的ZZ_T_TAB?和 之后如何在同一个表中添加其他字段 行已存在?
您可以通过各种方式修改数据库表。:
1,使用UPDATE语句直接更新字段值 2,使用MODIFY语句修改(例如)预先选择的字段值 结构
在ABAP帮助中查找UPDATE和MODIFY命令,有非常有用的代码示例。