Как я могу записать результат функции на экран? - PullRequest
0 голосов
/ 11 января 2019

Я получил функцию, которая представляет собой простой SELECT из таблицы. У меня экран с кнопкой. Я хочу вызвать функцию и вывести на экран таблицу результатов, когда кнопка активирована. Что не так? Я не получаю никакой ошибки, просто ничего не происходит.

CASE ok_code.
    WHEN 'SELECTALL'.
      CALL FUNCTION 'ZRL_ZH12FU_MONUMENTALL'
        TABLES
          MONUMENTLIST       =   monumentresult.
      LOOP AT monumentresult INTO monumentresultline.
        WRITE: / monumentresultline-monumentid,
                 monumentresultline-monumenttitle,
                 monumentresultline-theatre,
                 monumentresultline-year,
                 monumentresultline-part,
                 monumentresultline-picture.
      ENDLOOP.
    WHEN 'SELECT'.

Ответы [ 3 ]

0 голосов
/ 11 января 2019

WRITE выводит данные только в «буфер списка», который будет автоматически отображаться при отображении системного экрана «экран списка».

Чтобы переключиться с классического экрана на экран списка, используйте этот оператор в PAI классического экрана:

LEAVE TO LIST-PROCESSING.

В конце PAI отображается экран списка и отображаются все данные из буфера списка.

Когда вы нажимаете кнопку «Выход» на экране списка, он делает неявное LEAVE LIST-PROCESSING (без TO), и отображается последний классический экран.

0 голосов
/ 12 января 2019

Пишите заявления обычно пишите на экране списка. Часть исполняемой программы. Я вижу, что вы пытаетесь писать на обычном экране пула модулей.

Чтобы добиться этого, операторы записи в исполняемой программе и использовать для вызова программу submit, чтобы ваши операторы записи работали.

0 голосов
/ 11 января 2019

Оператор записи работает только для экрана вывода, но не для экрана выбора.

Возможно, вам нужно определить некоторые текстовые элементы на экране выбора и использовать

LOOP AT SCREEN

конструкция для обновления значений указанных текстовых элементов.

...