SAP Управление таблицей ABAP с примерами

Табличные элементы управления и пошаговые циклы — это объекты для отображения экранной таблицы, которые вы добавляете на экран в разделе «Экран». Painter.

С точки зрения программирования табличные элементы управления и пошаговые циклы практически одинаковы. Табличные элементы управления — это просто улучшенные пошаговые циклы, которые отображают данные так же, как таблицы в настольных приложениях.

Особенности управления таблицами ABAP

С помощью элементов управления таблицей пользователь может:

  • Прокрутка таблицы по вертикали и горизонтали
  • Изменение размера ширины столбца
  • Прокрутка внутри поля (когда содержимое поля шире поля)
  • Выберите строки или столбцы таблицы
  • Переупорядочить последовательность столбцов
  • Сохраните текущие настройки дисплея для использования в будущем.

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

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

Одной из особенностей пошаговых циклов является то, что строки их таблицы могут занимать более одной строки на экране. С другой стороны, строка табличного элемента управления всегда должна содержаться в одной строке (хотя прокрутка возможна).

В общем, многие функции, предоставляемые элементом управления «Таблица», обрабатываются локально вашей системой. SAPграфический интерфейс, поэтому вам не нужно программировать их самостоятельно. Единственное заметное исключение из этого правила — вертикальная прокрутка..

Пример (транзакция TZ60)

SAP Управление таблицей ABAP

Синтаксис

Чтобы обрабатывать элементы управления таблицами в программах 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 – содержит количество строк, видимых в таблице.

Чтобы создать элемент управления «Таблица»

1.Добавьте на экран элемент управления таблицей.

2. Дайте имя табличному элементу управления. В программе ABAP объявите такую ​​же структуру (CONTROLS введите TABLEVIEW С ИСПОЛЬЗОВАНИЕМ ЭКРАНА )

3.Для создания полей перейдите в функцию «Поля словаря/программы».

  • Введите имя структуры, поля которой вам нужны. (Если вы хотите, чтобы он выбрал его из словаря вашей программы, нажмите соответствующую кнопку).
  • В списке полей выберите нужные поля и нажмите «ОК».
  • Нажмите в области управления столом.

Если вам нужен столбец выбора, установите соответствующий флажок в атрибутах и ​​дайте ему имя. Создайте поле в ABAP-программа.

В ПБО у вас должно быть заявление

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

В PAI у вас должно быть.

LOOP at <itab>.

ENDLOOP.

Именно внутри циклов происходит передача данных между экраном и внутренней таблицей. При заполнении внутренней таблицы используйте DESCRIBE TABLE. ЛИНИИ -lines, чтобы сохранить общее количество строк в элементе управления. Оператор FIELD можно использовать для управления моментом передачи данных.

Чтобы изменить атрибуты отдельных ячеек, временно измените таблицу 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.