Вывод текста в окне ABAP

В этой статье разберём задачу в вывода длинного текста пользователю в виде всплывающего окна с использование ФМ COPO_POPUP_TO_DISPLAY_TEXTLIST. Он даёт возможность вывести текст произвольной длины пользователю, а так же имеет несколько режимов, от которых зависит набор кнопок в окне.

Применение окна с текстовым блоком на практике.

Предпосылки для возникновения этой статьи были следующие. В таблице ALV, во первых, нет возможности вывести текст в столбце длиннее чем 255 символов, а наше поле может составлять например 300 или 500. Во вторых, даже если вывести с таблице поле 200-250 символов, то оно займёт на экране большую часть места, что будет снижать удобство для пользователя. И даже при длине поля 100 символов, попрой нет смысла в его отображении, а можно например заменить его индикатором, а по щелчку на эту иконку открывать подробный текст.

Стандартный журнал сообщений как альтернатива.

Если задача состоит именно в выводе текстов сообщений об ошибках, то можно воспользоваться выводом стандартного журнала сообщений, который был описан нами ранее, но у него есть ограничение на длину одной строки сообщения в 200 символов. И при этом к каждой строке в столбце будет выводиться индикатор типа сообщения, поэтому этот вариант не очень красив для длинных сообщений. В случае списка сообщений с длинной до 200 символов, это хороший вариант.

Подготовка данных для передачи в ФМ.

У функционального модуля COPO_POPUP_TO_DISPLAY_TEXTLIST также имеются ограничения на длину одной строки, оно составляет 132 символа, это максимальная длина одной строки при выводе. При этом не обязательно разбивать строку именно на подстроки по 132 символа, а можно разбить на любую удобную для имеющейся задачи длину. В связи с этим возникает задача разбиения произвольной строки на подстроки одинаковой длины, которая так же была уже описана в отдельной статье. То есть задача разбилась на преобразование длинной строки в таблицу строк и передачу её в ФМ. Теперь рассмотрим подробнее возможности функционального модуля.

Вывод текста ABAP в окне

ФМ COPO_POPUP_TO_DISPLAY_TEXTLIST

  • task — режим работы функционального модуля. Возможные режимы:
    • ‘DISPLAY’ — это режим для удобства просмотра, в котором есть возможность быстрого перехода между страницами текста на экране. Перейти на следующую страницу, перейти в конец текста, на первую страницу и в начало текста. При любом варианте закрытия окна FUNCTION = BACK.
    • ‘DECIDE’ — это режим с кнопками «Скопировать» и «Изменить». Но на самом деле кнопки влияют только на заполнение параметра FUNCTION. При нажатии кнопки «Скопировать» пользователем FUNCTION = ACCE, а при нажатии «Изменить» FUNCTION = MODI.
  • titel — заголовок окна
  • function — код, возвращаемый ФМ по результату диалога с пользователем. Зависит от режима и действий пользователя. Варианты возврата: BACK, ACCE, MODI.

Шаблон для вывода текста пользователю в выпадающем окне(подробные статьи по гиперссылкам):

Добавить комментарий