:::: МЕНЮ ::::

ZIF_GUI_TEXT_VIEW — Интерфейс отображения текста

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

Интерфейс ZIF_GUI_TEXT_VIEW предназначен для отображения текстовых данных. Рассмотрим его имплементации:

  • ZCL_GUI_HTML_VIEWER — отображение текста в HTML браузере
  • ZCL_GUI_NIC_EDITOR — отображение текста в HTML-редакторе Nic Editor
Читать дальше…

ZIF_GUI_DATA_VIEW — Интерфейс отображения данных

В предыдущих статьях мы рассматривали использование библиотеки ZCA_GUI на примерах использования текстового редактора, вывода таблицы ALV и вызова экрана с контейнером.

Сейчас рассмотрим инструменты отображения произвольных данных в разных форматах. Для этого в библиотеке используется интерфейс ZIF_GUI_DATA_VIEW и его имплементации:

  • ZCL_GUI_DATA_VIEW_XML — Класс для отображения данных в XML-представлении
  • ZCL_GUI_DATA_VIEW_JSON — Класс для отображения данных в JSON-формате
  • ZCL_GUI_DATA_VIEW_TREE — Класс для отображения данных в виде дерева
  • ZCL_GUI_DATA_VIEW_COMPOSITE — Класс для отображения данных во всех перечисленных форматах
Читать дальше…

ZCL_GUI_SCREEN_TEXTEDIT — удобная работа с текстовым редактором

В предыдущих статьях мы рассматривали создание ALV и отображение произвольного экрана через библиотеку ZCA_GUI. Сейчас рассмотрим пример удобного вывода текстового редактора на основе стандартного класса CL_GUI_TEXTEDIT.

Довольно часто приходится сталкиваться с задачей, когда пользователю необходимо отобразить текст (или дать его ввести) с добавлением некоторых кнопок на экран. Все это легко сделать через класс ZCL_GUI_SCREEN_TEXTEDIT.

Читать дальше…

ZCL_GUI_SCREEN_ALV — удобная работа с ALV

В предыдущей статье мы рассматривали класс ZCL_GUI_SCREEN для создания экранов из ОО-контекста. В большинстве приложений экраны содержат контейнер с размещенным на нем экземпляром таблицы ALV. Для более удобной работы, библиотека ZCA_GUI содержит уже класс ZCL_GUI_SCREEN_ALV, обернутый в экран ZCL_GUI_SCREEN. Класс содержит в себе все возможности нативного CL_GUI_ALV_GRID.

Читать дальше…

ZCL_GUI_SCREEN — экран в ООП без PBO/PAI

Одним из самых неудобных в моментов разработки в SAP является работа с экранами. Для отображения экрана с ALV-таблицей необходимо: создать экран с контейнером, создать GUI-заголовок и GUI-статус, определить PBO/PAI модули. Большая часть из этих действий содержит шаблонный код и не содержит полезной нагрузки. А самое неприятное то, что все это нельзя создать в ОО-контексте.

SAP частично избавил разработчиков от этой боли, написав ФМ REUSE_ALV_GRID_DISPLAY и класс CL_SALV_TABLE. Но они решают лишь часть проблем: для добавления кнопок в GUI-статус требуется создавать свой статус (в добавок к нему и программу или группу функций), а если требуется создать редактируемый ALV, то CL_SALV_TABLE бессилен, а REUSE_ALV_GRID_DISPLAY нельзя полноценно обернуть в класс. А если требуется нарисовать несколько таблиц на экране, или сделать текстовое поле через CL_GUI_TEXTEDIT, то создание своего экрана с PBO/PAI неизбежно.

Для решения проблем подобного рода, многие разработчики делают свои обертки над ALV. У кого-то они получаются удачными, у других же они сложны в настройке и чувствительны к кастомизации. Я один из тех разработчиков, кто решил написал подобную библиотеку ZCA_GUI, которую вы можете скачать через ABAP-Git. В статье приведено описание основных возможностей данной библиотеки.

Читать дальше…

ZCL_LOG — Класс для ведения логов

Есть мнение, что каждый ABAP-разработчик написал свой логгер. Но может ли ваш логгер добавлять произвольные поля или например «проваливаться в транзакции»? И все это стандартными возможностями без каких-либо точек расширения. Ниже представляю описание своего класса для ведения логов. Скачать его можно через ABAP Git по ссылке.

Читать дальше…

Бинарный поиск по таблице LOOP AT … BINARY SEARCH

Иногда удобно найти записи в таблице используя бинарный поиск. Конструкция LOOP AT … BINARY SEARCH в ABAP отсутствует, но можно ее смоделировать. При выполнении READ TABLE … BINARY SEARCH, в переменную sy-tabix возвращается индекс первой найденной строки. Для поиска остальных строк необходимо считать следующие строки проверить в них значения ключевых полей.

Читать дальше…

Структурная печать XML документа

На ABAP уровне XML документы обычно не содержат разделители между тэгами, т.е. содержимое XML представлено в виде одной строки. Это не мешает работать программе, но если потребуется вывести XML на просмотр или сохранить в файл, то он будет не читаемый. Повысить читаемость можно если каждый новый тэг писать на новой строке и делать отступ, соответствующий уровню иерархии тэга. Ниже представлен код, который делает структурную печать XML строки.

Читать дальше…

Произношение текста через ABAP

Оказывается, в SAP можно получить доступ к голосовому ассистенту


Не устанавливается точка прерывания в Eclipse

Если вы используете Eclipse или HANA Studio как IDE для ABAP, но при этом пользуетесь классическим отладчиком, то возможно вы сталкивались с проблемой когда /h и BREAK-POINT не запускают отладку, а при попытке установить точку прерывания возникает ошибка ED701: Невозможно установ. точки прерыв. из-за внеш. контекста (—> подр. текст). На английском звучит так: Breakpoints cannot be set because of external context (—> long text).

Читать дальше…

Страницы:12345