Abap “错误”;在Unicode程序中不能相互转换”;向表中添加行时

Abap “错误”;在Unicode程序中不能相互转换”;向表中添加行时,abap,Abap,我正在尝试将数据从内部表添加到自定义表 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_countryGroup

我正在尝试将数据从内部表添加到自定义表

 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.
数据:TMP的开始时间为1000,
CTYGR型/SAPSLL/CTYGR,
TEXT1类型/SAPSLL/TEXT60,
TMP电路结束。
选择ctygr,text1从/SAPSLL/CTYGPT进入表格@DATA(lt\u countryGroupsTable)
在lt_countryGroupsTable赋值字段-SYMBOL()处循环。
附加到TMP\u CTRYGRP\T。
结束循环。
然后我想在自定义表类型ZZ\u T\u选项卡中添加该行

因此,我尝试创建该表的字段符号,从中创建一个内部表,但我尝试的解决方案都不允许我在该自定义表中添加行(即使程序中的表有行)

我主要遇到的问题是:

在Unicode程序中不能相互转换

因此,我的问题是:

  • 为什么会发生这种错误?谷歌搜索它并没有给我一个可以理解的答案
  • 目前,我正在使用一个限制为1000行的内部表。但我不知道搜索能提供多少行。有什么办法可以改进吗
  • 那么,如何将任何解决方案中的行添加到我的ZZ_T_选项卡?之后,如何在同一个表中为已经存在的行添加其他字段
正如你们中的一些人可能理解的那样,我是ABAP的新手。 因此,如果有任何有用的链接来理解所有这些,如果你能与我分享,我将非常高兴

  • 你为什么不直接选择进入表格
  • 不要使用
    发生
    ,因为它已被声明为过时,并且在类中已被禁止
  • 将自己的结构声明为type,并将自定义内部表标记为
    type struct\u 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.
    
  • 为什么会发生这种错误?谷歌搜索它并没有给我一个答案 可以理解的答案

    不能对不相同的结构使用APPEND。你必须先“转换”它。在ABAP帮助中查找命令MOVE-CORRESPODING(编辑器中的F1命令)

    目前,我正在使用一个限制为1000行的内部表。但我 我真的不知道提前搜索的行数 提供。有什么办法可以改进吗

    不要使用OCCURS扩展,因为它已被弃用(如lausek所写),语法陈旧

    那么,如何将任何解决方案中的行添加到我的ZZ\u T\u选项卡?及 之后,如何在同一个表中为 行已经存在吗

    您可以通过多种方式修改DB表:

    1、使用UPDATE语句直接更新字段值。
    2、使用MODIFY语句修改(例如)预选字段的字段值 结构


    在ABAP帮助中查找UPDATE和MODIFY命令,这里有非常有用的代码示例。

    什么是“自定义表”?数据库表?这是你的全部代码吗?@szako我指的是DB表是的,不仅仅是一种表类型,而且是一种存储真实数据的类型。