Умные формы в SAP ABAP
⚡ Умное резюме
Умные формы в SAP ABAP создает и поддерживает формы для массовой печати с выводом на принтер, факс, электронную почту или в Интернет. На этой странице объясняется архитектура, узлы конструктора форм, окна, таблицы, шаблоны, стили и сгенерированный функциональный модуль.

Что такое Smart Forms в... SAP АБАП?
SAP Smart Forms используется для создания и обслуживания форм для массовой печати в SAP Системы. Как средство вывода SAP Смарт-формы поддерживают принтер, факс, электронную почту или Интернет (используя сгенерированный XML-вывод).
SAP представила SmartForms в 1998 году, чтобы преодолеть ограничения в SAP Скрипты. SmartForms легче разрабатывать, обслуживать и транспортировать, чем SAP Сценарий.
Сравнение Smart Forms и SAPScripts
- В SmartForms возможно использование нескольких форматов страниц, чего не происходит в SAP Сценарии
- Возможно иметь SmartForm без главного окна.
- Подпрограммы можно писать с помощью инструмента SmartForms.
- SmartForms генерирует функциональный модуль при активации.
- Ярлыки невозможно создавать в SmartForms.
| Критерии | Умные формы | SAPскрипт |
|---|---|---|
| Форматы страниц | Несколько форматов страниц в одной форме | Формат одной страницы на одну форму |
| Главное окно | Не обязательно | Требуется ровно одно главное окно. |
| Процедуры | Написано внутри самой формы. | Написано в отдельной печатной программе. |
| Активация | Генерирует функциональный модуль. | Функциональный модуль не сгенерирован. |
| Метки | Невозможно создать | Может быть создан |
Преимущества интеллектуальных форм
- Они позволяют адаптировать формы без каких-либо знаний в программировании благодаря полностью графическому пользовательскому интерфейсу.
- При активации смарт-формы система автоматически генерирует функциональный модуль и во время выполнения.
- Чтобы внести какие-либо изменения, нам нужно использовать перетаскивание, вырезание и вставку. Эти действия не включают в себя написание строк кода или использование скриптового языка.
- Мы можем вставлять статические и динамические таблицы. К ним относятся переводы строк в отдельных ячейках таблицы, запуск событий для заголовков и промежуточных итогов таблицы, а также сортировка данных перед выводом.
- Интеллектуальные формы позволяют пользователю включать графику, которая может отображаться как часть формы или как фоновая графика. Во время распечатки пользователь может по необходимости отключить фоновое изображение.
- Веб-публикация возможна с использованием сгенерированного XML выходной
Archiструктура SAP Умная форма
На архитектурной схеме показаны три задействованных слоя. Форма разрабатывается в конструкторе форм, активация генерирует функциональный модуль, а программа печати вызывает этот модуль с данными приложения. Далее рассматриваются этапы проектирования первого слоя.
Руководство по смартформам
Давайте пройдемся по этому SAP система–
- Введите транзакцию СМАРТФОРМЫ в поле кода транзакции.
- На следующем экране введите имя формы и нажмите «Создать».
Следующий экран разделен на три раздела:
Окно навигации состоят из узлов и подузлов. Они содержат все элементы (текст, окно и т. д.), принадлежащие формам SAP.
- Период обслуживания показывает атрибуты элементов
- Принтер форм окно показывает макет страницы
Всякий раз, когда мы создаем умные формы, SAP создает/генерирует функциональный модуль. В отличие от SAPсценарии, SAP ФОРМЫ позволяют менять язык.
В окне навигации вы найдете
Глобальные декларации данных : Определенные здесь данные можно использовать во всей смарт-форме для целей кодирования.
Интерфейс формы : Здесь определяются все данные, которые будут переданы в смарт-форму из программы печати.
Щелчок правой кнопкой мыши на страницах позволит создать новую страницу, окно, графику или адрес.
Печать будет осуществляться на основе поля «Следующая страница».
Но обработка будет происходить в соответствии с последовательностью, указанной в окне навигации!
Для фонового рисунка и графики можно подобрать как черно-белые, так и цветные растровые изображения, сохраняемые в виде стандартных текстов. Вы можете отойти от экрана смарт-формы и открыть экран «Графика формы». Код операции: Se78
Настройки графики в окне Smart Form.
Windows в умных формах
Есть два типа Windows
- Главная
- Старшая школа
Важные моменты, на которые следует обратить внимание
- На странице не может быть более одного главного окна. Вы можете иметь несколько дополнительных окон
- Что бы вы ни печатали во втором окне… оно должно быть статичным. (Если у вас 20 строк в заказе на покупку и существует ограничение на количество страниц, строки переносятся на следующую страницу в главном окне. т.е. в предшествующем и последующем типе контента они будут печататься последовательно в главном окне. Это не так. разрешено во вторичных окнах.
Внутри главного окна мы можем добавить вводный текст для настройки вывода формы.
Параметры вывода в каждом окне определяют размер линии, ширину, цвета и фон.
Smartforms дает возможность указать номер адреса, который хранится в центральном управлении адресами. Адрес будет взят непосредственно из таблицы ADRC и заполнен в форме.
В Smartforms доступны два разных редактора, а именно. Обычный редактор
и графический редактор.
Этот параметр можно изменить с помощью редактора конфигурации в разделе «Утилиты».
Столики на подоконнике
В Table Painter вы можете нарисовать формат в соответствии с требованиями клиента (например, заголовок, подзаголовок, элемент, подытог, общий итог и т. д.).
С помощью макета таблицы можно определить:
- Количество строк и ячеек
- Высота каждой строки
- Ширина каждой ячейки
- Выравнивание таблицы в окне
В таблице показаны различные типы строк, которые будут использоваться в таблице. Типы строк определяют размер каждой ячейки и количество ячеек в каждой строке.
Процесс программирования смарт-форм
Когда SAP Создается шаблон смарт-формы, пользователь создает макет формы, определяет необходимые поля, условия и специальные инструкции по программированию в шаблоне смарт-формы с помощью Smart Form Builder.
После завершения разработки формы ее необходимо активировать, прежде чем ее можно будет протестировать или получить к ней доступ для программ печати. Активация формы инициирует создание функционального модуля, который обрабатывает всю обработку формы.
Этот функциональный модуль взаимодействует с прикладной программой/программой печати для создания вывода на определяемом пользователем носителе вывода для указанного устройства.
В случае смарт-форм мы используем 2 функциональных модуля для обработки смарт-формы. В первый функциональный модуль мы передаем имя смарт-формы в качестве параметра импорта. Затем возвращается имя динамически создаваемого функционального модуля, который фактически вызовет смарт-форму.
Имя смартформы можно передать функциональному модулю – 'SSF_FUNCTION_MODULE_NAME'
Это вернет имя функционального модуля смарт-формы, на которую имеется ссылка.
Программа печати позвонит на FM. 'SSF_FUNCTION_MODULE_NAME' чтобы получить имя функционального модуля во время выполнения. После этого он вызовет полученный таким образом функциональный модуль для выполнения смарт-формы.
Как вызвать интеллектуальную форму из программы печати
Описанный выше двухэтапный вызов всегда записывается одинаково. Программа сначала вычисляет сгенерированное имя, а затем выполняет его с данными приложения.
- Разрешить имя функционального модуля: Передайте имя формы в переменную SSF_FUNCTION_MODULE_NAME. Сгенерированное имя меняется в каждой системе, поэтому его ни в коем случае нельзя задавать жестко.
- Вызывайте сгенерированный модуль динамически: Используйте функцию CALL FUNCTION с переменной, содержащей разрешенное имя, и передайте данные через параметры, определенные в интерфейсе формы.
- Управляйте выводом: Заполните управляющую структуру SSFCTRLOP, чтобы подавить диалоговое окно печати или запросить предварительный просмотр, а структуру SSFCOMPOP укажите устройство вывода.
- Обработайте исключения: Сгенерированный модуль вызывает ошибки FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR и USER_CANCELED, поэтому после вызова необходимо проверить SY-SUBRC.
DATA: lv_fm_name TYPE rs38l_fnam, ls_control TYPE ssfctrlop, ls_output TYPE ssfcompop. * 1. Get the name of the generated function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_SMART_INVOICE' IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE e001(zsf). " Form not found ENDIF. * 2. Call the generated module with the form data ls_control-no_dialog = 'X'. ls_control-preview = 'X'. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ls_control output_options = ls_output is_header = ls_header TABLES it_items = lt_items EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
⚠️ Предупреждение: Сгенерированное имя функционального модуля, например /1BCDWB/SF00000123, различно в каждой системе. Всегда разрешайте его с помощью SSF_FUNCTION_MODULE_NAME, иначе программа завершится с ошибкой после переноса.
Шаблоны
Шаблон можно использовать, если вам известен точный размер выходных данных или если выходные данные имеют фиксированный формат.
Например, налоговая форма/чеки/форма авиакомпании/железнодорожный билет: все они используют шаблоны.
Главное отличие таблицы от шаблона заключается в том, что в таблице высота изменяется динамически. В шаблоне же строка называется «линией».
УМНЫЕ стили
Умный стиль содержит:
- Данные заголовка, содержащие значения смарт-стиля по умолчанию.
- Форматы абзацев, включая отступы и интервалы, атрибуты шрифта, табуляции, а также контур и нумерацию.
- Форматы символов, включая эффекты (надстрочный индекс, нижний индекс), атрибуты штрих-кода и шрифта.
- Цвета и подчеркивания для формата абзаца или символа.
Вы можете использовать транзакцию «smartforms» / «smartstyles» для создания умного стиля.
💡 Совет: Назначайте интеллектуальный стиль в атрибутах формы, а не для каждого текстового узла. В этом случае одно изменение стиля затронет каждый абзац формы.
Это все, что касается этого урока






















