Динамические документы (часть 1)

Динамические документы являются логическим приемником стандартного в R/3 вывода списков. Они отображаются в виде HTML – документов, обеспечивают поддержку вывода различных графических элементов.  Используя классы DD, вы тем самым генерируете HTML код, который будет отображен в ходе выполнения программы. Вам не обязательно знать HTML. Общая схема форматирования гарантирует, что документы во всей системе будут отображены однотипно. Цветовые схемы автоматически добавляются в зависимости от цветов настроенных в GUI.

Интеграция

DD отображаются в R3, используя SAP Control Framework и SAP HTML Viewer. Вы можете отобразить их на любом контейнере: в определенной области экрана, в диалоговом режиме. Справка SAP.

Возможности.

DD поддерживают обработку следующих элементов:

  • Тексты
  • Ссылки
  • Кнопки
  • Поля ввода
  • Выпадающие списки
  • Иконки
  • Картинки
  • Таблицы

Примеры программ по работе с DD лежат в пакете SDYNAMICDOCUMENTS.

Динамичный документ представлен экземпляр класса cl_dd_document. Вы можете использовать его методы для добавления элементов в документе.

В документе, вы можете создавать формы и таблицы. Формы позволяют включать поля ввода, кнопки, выпадающие списки. Таблицы обеспечивают простой способ отображения данных в структурированном виде.

Прежде чем приступать к созданию DD, убедитесь, что вы знаете основы ABAP Objects и SAP Control Framework.

И так для отображения документа необходимо:

  1. Создать экран и область на экране для вывода контейнера.
  2. Создать инстанцию DD определив для него контейнер.
  3. Создать элементы DD.

Пример простой программы для вывода бегущей строки (100 экран с контейнером HTML, статус PFMAIN с определенными для выхода командами):

Добавление текста

Параметр и его тип Необ. Описание
text
TYPE SDYDO_TEXT_
ELEMENT
X Текст длинной до 255 символов
text_table
TYPE SDYDO_TEXT_
TABLE
X Внутренняя таблица с текстами
fix_lines
TYPE SDYDO_FLAG
X Индикатор задает, как должна отображаться таблица

  • X : Отображать каждую запись в новой строке
  • ‘ ‘ : Отобразить всю таблицу как один текст
sap_style
TYPE SDYDO_ATTRIBUTE
X Стиль вывода текста, может принимать значения: HEADING, KEY SUCCESS, WARNING, TABLE_HEADING
sap_color
TYPE SDYDO_ATTRIBUTE
X Цвет вывода: LIST_BACKGROUNDLIST_BACKGROUND_INTLIST_BACKGROUND_INVLIST_GROUPLIST_GROUP_INT

LIST_GROUP_INV

LIST_HEADING

LIST_HEADING_INT

LIST_HEADING_INV

LIST_KEY

LIST_KEY_INT

LIST_KEY_INV

LIST_NEGATIVE

LIST_NEGATIVE_INT

LIST_NEGATIVE_INV

LIST_NORMAL

LIST_NORMAL_INT

LIST_POSITIVE

LIST_POSITIVE_INT

LIST_POSITIVE_INV

LIST_TOTAL

LIST_TOTAL_INT

LIST_TOTAL_INV

sap_fontsize
TYPE SDYDO_ATTRIBUTE
X Размер шрифта. Возможные значения:

  • cl_dd_area=>small
  • cl_dd_area=>medium
  • cl_dd_area=>large
sap_emphasis
TYPE SDYDO_ATTRIBUTE
 X Выделение текста

  • cl_dd_area=>strong : Жирный
  • cl_dd_area=>emphasis : Курсив
sap_fontstyle
TYPE SDYDO_ATTRIBUTE
X SERIF, SANS_SERIF, STANDARD

 

Добавление ссылок

Ссылки добавляются в документ с помощью метода add_link. Вы можете определить одно из трех поведений для ссылок: 1. Ссылка на внешний адрес (например: интернет страницу) 2. Ссылка на закладку внутри документа. 3. Ссылку, не имеющую  адреса, для навешивания на нее определенного события программно.

Параметр и его тип Необ. Описание
name
TYPE SDYDO_
ELEMENT_NAME
X Имя ссылки
URL
TYPE STRING
X Внешний URL адрес
Tooltip
TYPE STRING
X Всплывающая подсказка к ссылке
text
TYPE SDYDO_TEXT_
ELEMENT
X Текст ссылки в документе
destination_in_doc_set
TYPE STRING
X Определяет закладку на которую будет ссылаться ссылка
destination_in_doc_pos
TYPE STRING
X Имя для создания новой закладки
link
TYPE REF TO
CL_DD_LINK_
ELEMENT
Возвращает инстанцию объекта инкапсулирующего ссылку. Необходимо для установки обработчиков событий. См. пример ниже.

Для того чтобы установить ссылку на закладку в документе необходимо вызвать параметр с заполненным полем destination_in_doc_set. Для создания новой закладки необходимо вызвать метод с заполненным параметром destination_in_doc_pos.

Пример части программы, добавляющей ссылку в документ  и обработки ее щелчка.

Добавление иконок

Для добавления иконок в DD служит метод add_icon. Описание его параметров:

Параметр и его тип Необ. Описание
sap_icon
TYPE ICONNAME
Имя иконки, зачем то в текстовом формате не совместимом с пулом типов <icon>.
sap_size
TYPE SDYDO_ATTRIBUTE
X Размер иконки: LARGE (20х20), EXTRALARGE (30×30)
sap_style
TYPE SDYDO_ATTRIBUTE
X См. описание выше
sap_color
TYPE SDYDO_ATTRIBUTE
X См. описание выше
alternative_text
TYPE STRING
X Подсказка к иконке

Добавление картинок

Картинки добавляются с помощью метода add_picture. Основной параметр picture_id – ключ бизнес документа с типом OT и классом PICTURES см. тр. OAOR.

Дополнительные методы работы с документом:

Вставка пустых строк:

Подчёркивание:

Для того чтобы все вновь добавляемые в документ элементы находились в одной линии, необходимо перед их добавлением вызвать метод:

После их добавления:

Пропуск позиций в документе, добавить пробелы:

go_document->add_gap( WIDTH = 10 width_like = ‘____’ ). Где width – длинна в пикселях, width_like – задает вместо пробела &nbsp; другой шаблон, т.е. вместо длинны пробела, будет использована длинна заданного символа (набора символов).

Добавление HTML кода к документу, хоть и написано что для внутреннего использования, но применять можно:

Где table_with_html – таблица с HTML кодом, string_with_html – строка с html кодом. HTML_FROM_DYNAMIC_DOCUMENT  — означает, что html код из table_with_html получен из другого дд. bds_pictures – таблица с BDS изображениями (см. описание add_picture).