SAP Управление таблицей ABAP с примерами
Табличные элементы управления и пошаговые циклы — это объекты для отображения экранной таблицы, которые вы добавляете на экран в разделе «Экран». Painter.
С точки зрения программирования табличные элементы управления и пошаговые циклы практически одинаковы. Табличные элементы управления — это просто улучшенные пошаговые циклы, которые отображают данные так же, как таблицы в настольных приложениях.
Особенности управления таблицами ABAP
С помощью элементов управления таблицей пользователь может:
- Прокрутка таблицы по вертикали и горизонтали
- Изменение размера ширины столбца
- Прокрутка внутри поля (когда содержимое поля шире поля)
- Выберите строки или столбцы таблицы
- Переупорядочить последовательность столбцов
- Сохраните текущие настройки дисплея для использования в будущем.
Элементы управления таблицами также предлагают специальные функции форматирования (некоторые автоматические, некоторые дополнительные), которые упрощают просмотр и использование таблиц. Table Control обеспечивает –
- автоматическое изменение размера таблицы (по вертикали и горизонтали), когда пользователь изменяет размеры окна
- линии-разделители между строками и между столбцами (вертикальные и горизонтальные)
- поля заголовков столбцов для всех столбцов
Одной из особенностей пошаговых циклов является то, что строки их таблицы могут занимать более одной строки на экране. С другой стороны, строка табличного элемента управления всегда должна содержаться в одной строке (хотя прокрутка возможна).
В общем, многие функции, предоставляемые элементом управления «Таблица», обрабатываются локально вашей системой. SAPграфический интерфейс, поэтому вам не нужно программировать их самостоятельно. Единственное заметное исключение из этого правила — вертикальная прокрутка..
Пример (транзакция TZ60)
Синтаксис
Чтобы обрабатывать элементы управления таблицами в программах 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.