SAP Контроль таблиці ABAP з прикладами

⚡ Розумний підсумок

SAP Елемент керування таблицями ABAP відображає внутрішню таблицю як прокручувану сітку на екрані, вбудованому в Screen. PainterНа цій сторінці пояснюються його функції, оголошення CONTROLS, обробка курсора, цикли PBO та PAI, а також атрибути стовпців.

  • 🖥️ Основне визначення: Елемент керування "Таблиця" – це покращений покроковий цикл, який відображає дані таблиці з виглядом та функцією сітки настільної програми.
  • 🧰 Вбудовані функції: Прокручування, зміна розміру стовпців, зміна порядку стовпців, вибір рядків та збережені налаштування відображення обробляються SAPграфічний інтерфейс.
  • 📜 Правило одного рядка: Рядок циклу кроків може охоплювати кілька рядків екрана, тоді як рядок керування таблицею завжди повинен поміщатися в один рядок.
  • ⌨️ Декларація: КЕРУВАННЯ ВВЕДІТЬ TABLEVIEW ЗА ДОПОМОГОЮ SCREEN пов'язує елемент екрана з програмою ABAP.
  • 🎯 Обробка курсора: SET CURSOR позиціонує курсор у позиції PBO, а GET CURSOR зчитує поле та рядок у позиції PAI.
  • 🔁 Передача даних: ЦИКЛ AT … З ВИКОРИСТАННЯМ CONTROL виконується на PBO, а звичайний ЦИКЛ AT виконується на PAI, і дані переміщуються між екраном та внутрішньою таблицею всередині цих циклів.
  • 🎨 Динамічні атрибути: Таблиця SCREEN та Структура -cols змінює видимість та форматування стовпців під час виконання.

SAP Контроль таблиці ABAP

Що таке елемент керування таблицею в SAP ABAP?

Елементи керування таблицею та покрокові цикли — це об’єкти для відображення екранної таблиці, які ви додаєте до екрана на екрані Painter.

З точки зору програмування, елементи керування таблицею та покрокові цикли майже однакові. Елементи керування таблицею — це просто покращені покрокові цикли, які відображають дані в тому вигляді, у якому вони виглядають і виглядають як таблиці в настільних програмах.

Особливості ABAP Table Control

За допомогою елементів керування таблиці користувач може:

  • Прокрутіть таблицю по вертикалі та горизонталі
  • Змініть ширину стовпця
  • Прокрутка в межах поля (коли вміст поля ширший за поле)
  • Виберіть рядки або стовпці таблиці
  • Змініть послідовність колонок
  • Збережіть поточні налаштування дисплея для подальшого використання

Елементи керування таблицями також пропонують спеціальні функції форматування (деякі автоматичні, деякі додаткові), які полегшують перегляд і використання таблиць. Table Control забезпечує –

  • автоматичне змінення розміру таблиці (по вертикалі і горизонталі) при зміні користувачем розміру вікна
  • розділові лінії між рядками та між стовпцями (вертикальні та горизонтальні)
  • поля заголовків для всіх стовпців

Загалом, багато функцій, що надаються елементом керування таблицею, обробляються локально вашою системою SAPграфічний інтерфейс, тому вам не потрібно програмувати їх самостійно. Єдиним помітним винятком із цього є вертикальне прокручування.

Приклад (транзакція TZ60)

SAP Контроль таблиці ABAP

Транзакція TZ60 вище показує кінцевий результат: сітку із заголовками стовпців, роздільними лініями та стовпцем вибору. Відмінності від старого циклу кроків підсумовано нижче.

Контроль таблиці проти циклу кроків

Одна з особливостей покрокових циклів полягає в тому, що рядки їхньої таблиці можуть займати більше одного рядка на екрані. Рядок табличного елемента керування, з іншого боку, завжди повинен міститися в одному рядку (хоча прокручування можливе). У таблиці нижче порівнюються два елементи екрана.

Критерії Контроль таблиці Крокова петля
Розкладка рядків Один рядок завжди є одним рядком екрану Один рядок може займати кілька рядків екрана
Обробка стовпців Користувач може змінювати розмір, порядок та приховувати стовпці Фіксований макет стовпців, визначений на екрані
Прокрутка Горизонтальне прокручування здійснюється фронтендом, вертикальне прокручування запрограмоване в PAI Запрограмовано повністю кодом ABAP
Декларація ЕЛЕМЕНТИ КЕРУВАННЯ … ВВЕДІТЬ TABLEVIEW ЗА ДОПОМОГОЮ SCREEN Відсутність структури керування в програмі
Налаштування дисплею Користувач може зберегти особистий макет Недоступний

Оскільки елемент керування таблицею є сучасним елементом, решта цієї сторінки програмує саме його.

Як створити та запрограмувати елемент керування "Таблиця"

Табличний елемент керування потребує елемента екрана, структури керування в програмі та циклу як у PBO, так і в PAI. Наведені нижче підрозділи дотримуються саме такого порядку.

Оголошення контролю

Щоб обробляти елементи керування таблиці в програмах ABAP, ви повинні оголосити елемент керування в частині оголошення програми для кожного елемента керування таблиці за допомогою наступного оператора:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

де це назва елемента керування таблиці на екрані програми ABAP. Елемент керування дозволяє програмі ABAP читати атрибути елемента керування таблиці та впливати на елемент керування. Тут номер екрана, де завантажуються початкові значення таблиці.

Встановлення та зчитування положення курсора

Позицію курсору для елемента керування таблиці можна встановити такими способами:

У PBO ви можете встановити курсор на певне поле певного рядка елемента керування таблиці.

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

Використовуючи необов’язкове доповнення OFFSET, ви можете ввести зміщення курсора в полі, як описано в розділі Налаштування положення курсору.

У PAI ви можете прочитати поточну позицію курсору.

GET CURSOR FIELD <f> LINE <lin> ...

На додаток до інформації, наведеної в полі визначення положення курсору містить інформацію про те, на якому рядку елемента керування таблиці зараз знаходиться курсор. Ви також можете використовувати

GET CURSOR LINE <lin>.

щоб визначити рядок табличного елемента керування. SY-SUBRC дозволяє перевірити, чи курсор розміщено в рядку табличного елемента керування.

Читання відповідного внутрішнього рядка таблиці

Для отримання відповідного рядка внутрішній стіл:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

Системна змінна stepl – містить поточний індекс рядка таблиці в циклі … endloop. Loopc – містить кількість видимих ​​рядків у таблиці

Створення елемента керування на екрані Painter

Щоб створити елемент керування таблицею

  1. Додайте елемент керування таблицею на екран
  2. Дайте назву табличному елементу керування. У програмі ABAP оголосіть структуру з тим самим (CONTROLS тип TABLEVIEW за допомогою екрана )
  3. Щоб створити поля, перейдіть до функції Dict./Program fields.
    • Введіть назву структури, поля якої вам потрібні. (Якщо ви хочете, щоб він вибрав його зі словника вашої програми, натисніть відповідну кнопку).
    • У списку полів виберіть потрібні поля та виберіть «ОК».
    • Клацніть в області керування таблицею

Якщо вам потрібен стовпець вибору, установіть відповідний прапорець в атрибутах і дайте йому назву. Створіть поле в Програма ABAP.

Кодування циклів PBO та PAI

В ПБО у вас повинна бути заява

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

У PAI ви повинні мати.

LOOP at <itab>.

ENDLOOP.

Саме в циклах відбувається передача даних між екраном та внутрішньою таблицею. Під час заповнення внутрішньої таблиці використовуйте DESCRIBE TABLE. LINEС -lines, щоб зберегти загальну кількість рядків в елементі керування. Оператор FIELD можна використовувати для керування часом передачі даних.

⚠️ Попередження: Цикл PBO повинен іменувати елемент керування за допомогою USING CONTROL. Без нього елемент керування не знає, скільки рядків існує, і вертикальна прокрутка перестає працювати.

Зміна атрибутів стовпців під час виконання

Щоб змінити атрибути окремих комірок, тимчасово змініть таблицю SCREEN в PBO. Ви можете змінити атрибути структури, створеної оператором CONTROLS

<cntrl>-fixed_cols etc are the attributes of the control

<cntrl>-cols-index etc are the attributes of the columns.

<cntrl>-cols-screen-invisible etc are the screen attributes of each column.

💡 Порада: Перекидання петлі -cols у PBO, щоб приховати або захистити стовпець для певної ролі користувача, а не створювати другий екран.

Поширені запитання

Фронтенд обробляє горизонтальне прокручування, але вертикальне прокручування закодовано в PAI. Оцініть SY-UCOMM для кодів функцій прокручування та перемістіть поле top_line структури керування перед запуском наступного PBO.

An Сітка ALV забезпечує сортування, фільтрацію, підсумовування та експорт без додаткового коду, тому підходить для відображення списків. Елемент керування таблицею є кращим, коли екрану потрібна налаштована логіка введення та повний контроль над кожною клітинкою.

SY-STEPL містить індекс рядка, який наразі обробляється в циклі екрану, а SY-LOOPC містить кількість рядків, видимих ​​на екрані. Обидва заповнюються лише всередині LOOP … ENDLOOP елемента керування.

Так. Помічники ШІ в інструментах розробки ABAP створюють оголошення CONTROLS, обидва цикли екрану та логіку прокручування на основі опису внутрішньої таблиці. Згенерована логіка потоку все ще потребує тестування на екрані. Painter.

Інструменти аналізу на основі штучного інтелекту зчитують логіку потоку dynpro, перераховують поля та коди функцій, а також пропонують еквівалентний дизайн на основі Fiori або ALV. Пропозиція скорочує етап аналізу проекту модернізації.

Підсумуйте цей пост за допомогою: