Преобразовать рабочую область в строку типа внутренняя таблица

Я получаю эту синтаксическую ошибку:

"WA_1" нельзя преобразовать в тип линии "IT_1"

Я пытаюсь отобразить содержимое внутренней таблицы следующим образом:

REPORT  ZSAM.

DATA: ITable Type ZMUAZ_STRUCTURE OCCURS 10,
      IT_1 Type ZSTRUCT1 OCCURS 10,
      IT_2 Type ZSTRUCT2 OCCURS 10,
      WA_1 like IT_1,
      WA_2 like IT_2,
      WA_3 like ITable.

WRITE: 'vbeln', 'vtweg', 'posnr', 'matnrr','vrkme'.

select vbeln audat netwr waerk vkorg vtweg from VBAK into corresponding fields of Table IT_1.

LOOP AT IT_1 INTO WA_1.

write: /  WA_1-vbeln, WA_1-audat, WA_1-netwr, WA_1-waerk, WA_1-vkorg, WA_1-vtweg.

endloop.

Есть идеи, как решить эту ошибку?


person mj1261829    schedule 08.07.2019    source источник
comment
Привет, mj111261829, ты учишься по какой-то старой книге? За прошедшие годы в язык были внесены серьезные изменения. Вам обязательно стоит купить более новую.   -  person Jagger    schedule 09.07.2019


Ответы (1)


wa_1 объявлен как внутренняя таблица (а не как рабочая область). Самое простое решение - заполнить объявление с помощью LINE OF:

... wa_1 LIKE LINE OF it_1,

Однако объявление внутренних таблиц и рабочих областей, как вы, с помощью _ 4_ является устаревшим, его современный эквивалент - _ 5_:

DATA: it_1 TYPE STANDARD TABLE OF zstruct1,
      wa_1 TYPE zstruct1.
person József Szikszai    schedule 08.07.2019