Преобразовать рабочую область в строку типа внутренней таблицы - PullRequest
0 голосов
/ 08 июля 2019

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

"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.

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

1 Ответ

6 голосов
/ 08 июля 2019

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

... wa_1 LIKE LINE OF it_1,

Однако объявление внутренних таблиц и рабочих областей, как вы сделали с OCCURS, устарело , его современный эквивалент STANDARD TABLE OF:

DATA: it_1 TYPE STANDARD TABLE OF zstruct1,
      wa_1 TYPE zstruct1.
...