SAP ABAP Table Control с примерами

Anonim

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

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

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

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

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


Синтаксис
Для обработки табличных элементов управления в программах ABAP необходимо объявить элемент управления в части объявления программы для каждого табличного элемента управления с помощью следующего оператора:

ОРГАНЫ УПРАВЛЕНИЯ  ТИП TABLEVIEW ИСПОЛЬЗОВАНИЕ ЭКРАНА 

где - имя элемента управления таблицей на экране в программе ABAP. Элемент управления позволяет программе ABAP читать атрибуты элемента управления таблицей и влиять на элемент управления. Здесь - номер экрана, на котором загружаются начальные значения таблицы.
Положение курсора для табличного элемента управления можно установить следующими способами:
В PBO вы можете установить курсор на определенное поле определенной строки табличного элемента управления.

УСТАНОВИТЬ ПОЛЕ КУРСОРА  СТРОКА 
 [СМЕЩЕНИЕ <выкл.>]

Используя дополнительное дополнение OFFSET, вы можете ввести смещение курсора в поле, как описано в разделе «Установка положения курсора».
В PAI вы можете прочитать текущую позицию курсора.

ПОЛУЧИТЬ ПОЛЕ КУРСОРА  СТРОКА 

В дополнение к информации, приведенной в разделе «Определение положения курсора», поле содержит информацию о том, в какой строке элемента управления таблицей находится курсор. Вы также можете использовать

ПОЛУЧИТЬ ЛИНИЮ КУРСОРА 
.

для определения строки элемента управления таблицей. SY-SUBRC позволяет проверить, находится ли курсор в строке элемента управления таблицы.
Для получения соответствующей строки внутренней таблицы:

ПОЛУЧИТЬ строку КУРСОРА 
.ind = 
 -top_line + 
 - 1.Прочитать таблицу  index ind.

Системная переменная stepl - содержит индекс текущей строки таблицы в цикле… endloop. Loopc - содержит количество строк, видимых в таблице.
Создание
элемента управления таблицей 1. Добавьте элемент управления таблицей на экран
2. Дайте имя элементу управления таблицей. В программе ABAP объявите структуру с таким же (CONTROLS тип TABLEVIEW USING SCREEN )
3. Для создания полей перейдите к функции Dict./Program fields.

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

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

ПЕТЛИ в  ИСПОЛЬЗУЯ КОНТРОЛЬ .КОНЕЦ.

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

ПЕТЛИ на .КОНЕЦ.

Именно в циклах происходит передача данных между экраном и внутренней таблицей. При заполнении внутренней таблицы используйте DESCRIBE TABLE LINES -lines, чтобы сохранить общее количество строк в элементе управления. может использоваться для управления передачей данных.
Чтобы изменить атрибуты отдельных ячеек, временно измените таблицу SCREEN в PBO. Вы можете изменить атрибуты структуры, созданной оператором CONTROLS.

 -fixed_cols и т. д. являются атрибутами элемента управления -cols-index и т. д. являются атрибутами столбцов. -cols-screen-invisible и т. д. - атрибуты экрана каждого столбца.