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

Anonim

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

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

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

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

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


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

ЕЛЕМЕНТИ УПРАВЛІННЯ  ТИП ТАБЛИЦЯ ПОГЛЯД ЗА ВИКОРИСТАННЯМ ЕКРАНА 

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

ВСТАНОВИТИ ПОЛЕ КУРСОРА  РЯдок 
 [OFFSET ]

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

ОТРИМАТИ ПОЛЕ КУРСОРА  РЯДК 
 ... 

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

ОТРИМАТИ КУРСОВУ РЯДКУ 

для визначення рядка елемента керування таблицею. SY-SUBRC дозволяє перевірити, чи курсор розміщений у рядку елемента керування таблицею.
Для отримання відповідного рядка внутрішньої таблиці:

ОТРИМАТИ КУРСОР рядок 
.ind =  -top_line + 
 - 1.Прочитати таблицю  індекс ind.

Системна змінна stepl - містить поточний індекс рядка таблиці у циклі… endloop. Loopc - містить кількість рядків, видимих ​​у таблиці.
Створення
елемента керування таблицею 1.
Додавання елемента керування таблицею на екран 2. Надання імені елементу керування таблицею. У програмі ABAP оголосіть структуру з тим самим (тип CONTROLS TABLEVIEW USING SCREEN ) 3.Щоб
створити поля, перейдіть до функції Dict./Program fields.

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

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

LOOP за адресою  ЗА ВИКОРИСТАННЯМ CONTROL .ENDLOOP.

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

LOOP на .ENDLOOP.

У циклах відбувається передача даних між екраном і внутрішньою таблицею. Коли ви заповнюєте внутрішню таблицю, використовуйте DESCRIBE TABLE LINES -lines, щоб зберегти загальну кількість рядків у елементі управління. може використовуватися для контролю, коли відбувається передача даних.
Щоб змінити атрибути окремих комірок, тимчасово змініть таблицю SCREEN в PBO. Ви можете змінити атрибути структури, створеної за допомогою оператора CONTROLS

 -fixed_cols тощо - це атрибути елемента керування -cols-index etc - це атрибути стовпців. -cols-screen-invisible etc - це атрибути екрана кожного стовпця.