Розумні форми в SAP ABAP
⚡ Розумний підсумок
Розумні форми в SAP ABAP створює та підтримує форми для масового друку з виводом на принтер, факс, електронну пошту або Інтернет. На цій сторінці пояснюється архітектура, вузли конструктора форм, вікна, таблиці, шаблони, стилі та згенерований функціональний модуль.

Що таке смарт-форми SAP ABAP?
SAP Smart Forms використовується для створення та підтримки форм для масового друку SAP Системи. Як вихідний носій SAP Смарт-форми підтримують принтер, факс, електронну пошту або Інтернет (за допомогою згенерованого виводу XML).
SAP представив SmartForms у 1998 році, щоб подолати обмеження в SAP Сценарії. SmartForms легше розробляти, підтримувати та транспортувати, ніж SAP Сценарій.
Порівняння Smart Forms та SapScripts
- У SmartForms можливі кілька форматів сторінок, чого немає в SAP Сценарії
- Можна мати SmartForm без головного вікна.
- Підпрограми можна писати в інструменті SmartForms.
- Під час активації SmartForms генерує функціональний модуль.
- Мітки не можна створювати в SmartForms.
| Критерії | Розумні форми | SAPсценарій |
|---|---|---|
| Формати сторінок | Кілька форматів сторінок в одній формі | Одна сторінка формату на форму |
| Головне вікно | Не обов'язковий | Потрібно лише одне головне вікно |
| Процедури | Написано всередині самої форми | Написано в окремій програмі для друку |
| Активація | Генерує функціональний модуль | Функціональний модуль не генерується |
| етикетки | Неможливо створити | Можна створити |
Переваги смарт-форм
- Вони допомагають адаптувати форми без будь-яких знань програмування завдяки повністю графічному інтерфейсу користувача
- При активації смарт-форми система автоматично генерує функціональний модуль і під час виконання.
- Щоб внести будь-які зміни, ми повинні скористатися функціями Drag & Drop, Cut & Paste. Ці дії не включають написання рядків коду або використання мови сценаріїв.
- Ми можемо вставляти статичні та динамічні таблиці. До них належать переведення рядка в окремих клітинках таблиці, ініціювання подій для заголовків і проміжних підсумків таблиці та сортування даних перед виведенням.
- Розумні форми дозволяють користувачеві включати графіку, яка може відображатися як частина форми або як фонова графіка. Під час роздруківки користувач може при необхідності придушити фонову графіку.
- Веб-публікація можлива за допомогою створених XML вихід
Archiтектура SAP Розумна форма
На схемі архітектури показано три задіяні рівні. Форма проектується в Конструкторі форм, активація генерує функціональний модуль, а програма друку викликає цей модуль з даними програми. Далі розглядаються кроки проектування першого рівня.
Посібник Smartforms
Давайте зайдемо через це SAP система-
- Введіть транзакцію СМАРТФОРМИ у полі коду транзакції.
- На наступному екрані введіть назву форми та натисніть створити
Наступний екран поділений на три частини:
Вікно навігації складаються з вузлів і підвузлів. Вони містять усі елементи (текст, вікно тощо), які належать до простих форм
- Вікно обслуговування показує атрибути елементів
- Принтер форм вікно показує макет сторінки
Коли ми створюємо розумні форми, SAP створює/генерує функціональний модуль. На відміну від SAPсценарії, SAP ФОРМИ дозволяють змінювати мову.
У вікні навігації ви знайдете
Декларації глобальних даних : Дані, визначені тут, можна використовувати в усій смарт-формі для цілей кодування.
Інтерфейс форми : Тут визначаються всі дані, які будуть передані до смарт-форми з програми друку.
Клацання правою кнопкою миші на сторінках дозволить створити нову сторінку, вікно, графіку або адресу.
Друк буде відбуватися на підставі поля «наступна сторінка».
Але обробка відбуватиметься відповідно до послідовності в навігаційному вікні!
Для фонових зображень і графіки можна підібрати чорно-білі або кольорові растрові зображення, які зберігаються у вигляді стандартних текстів. Ви можете піти в обхід від екрана smartform і відкрити екран Form Graphics. Код транзакції: Se78
Налаштування у вікні графіки у смарт-формі
Windows в розумних формах
Існують два види Windows
- головний
- Вторинний
Важливі зауваження
- Ви не можете мати більше ніж 1 головне вікно на сторінці. Ви можете мати кілька додаткових вікон
- Усе, що ви друкуєте у додатковому вікні… воно має бути статичним. (Якщо у вас є 20 рядків у замовлення на замовлення та існує обмеження сторінки, рядки переносяться на наступну сторінку в головному вікні. Тобто у попередньому та наступному типі вмісту вони друкуватимуться послідовно в головному вікні. Це не дозволено у вторинних вікнах.
Усередині головного вікна ми можемо додати текст як вступ, щоб налаштувати вихід форми.
Параметри виводу в кожному вікні визначають розмір лінії, ширину, кольори та фон, які потрібно додати.
Smartforms дає можливість вказати номер адреси, який зберігається в центральній системі керування адресами. Адреса буде взята безпосередньо з таблиці ADRC і буде заповнена у формі.
У Smartforms доступні два різні редактори, а саме. Звичайний редактор
і графічний редактор.
Цей параметр можна змінити за допомогою редактора налаштувань у Службових програмах.
Столи у вікні
У Table painter ви можете намалювати формат відповідно до вимог клієнта (наприклад, заголовок, підзаголовок, елемент, проміжний підсумок, загальний підсумок тощо)
За макетом таблиці можна визначити:
- Кількість ліній і клітинок
- Висота кожного рядка
- Ширина кожної комірки
- Вирівнювання таблиці у вікні
У таблиці показано різні типи ліній, які використовуватимуться в таблиці. Типи ліній визначають розмір кожної клітинки та кількість клітинок у кожній лінії.
Потік програмування Smart Forms
Коли SAP Створюється шаблон Smart Form, користувач створює макет форми, визначає необхідні поля, умови та спеціальні інструкції з програмування в шаблоні Smart Form за допомогою Smart Form Builder.
Після завершення розробки форми форму потрібно активувати, перш ніж її можна буде протестувати або отримати до неї доступ програмами друку. Активація форми ініціює створення функціонального модуля, який керує всією обробкою форми.
Цей функціональний модуль взаємодіє з прикладною програмою/програмою друку для створення виводу на носії виводу, визначеному користувачем, для вказаного пристрою.
У випадку смарт-форм ми використовуємо 2 функціональні модулі для обробки смарт-форми. Першому функціональному модулю ми передаємо назву розумної форми як параметр імпорту. Потім це повертає ім’я динамічно згенерованого функціонального модуля, який насправді викличе смартформу.
Ім’я смарт-форми можна передати функціональному модулю – 'SSF_FUNCTION_MODULE_NAME'
Це поверне назву функціонального модуля смарт-форми, на яку є посилання.
Програма Print буде викликати 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, інакше програма завершить збій після транспортування.
шаблони
Шаблон можна використовувати, коли відомий точний розмір виводу або вивід має фіксований формат.
Наприклад, податкова форма/чеки/форма авіакомпанії/залізничний квиток: усі вони використовують шаблони.
Велика різниця між таблицею та шаблоном полягає в тому, що в таблиці висота змінюється динамічно. У шаблоні ми називаємо рядок «лінією».
SMART стилі
Розумний стиль містить:
- Дані заголовка, що містять стандартні значення інтелектуального стилю
- Формати абзаців, включаючи відступи та інтервали, атрибути шрифту, табуляції, контур і нумерацію
- Формати символів, включаючи ефекти (верхній індекс, нижній індекс), штрих-код і атрибути шрифту
- Кольори та підкреслення для формату абзацу чи символу
Ви можете використовувати транзакцію «smartforms» / «smartstyles», щоб створити розумний стиль.
💡 Порада: Призначте смарт-стиль атрибутам форми, а не кожному текстовому вузлу. Тоді одна зміна стилю поширюватиметься на кожен абзац форми.
Це все в цьому підручнику






















