Контрол на таблицата на SAP ABAP с примери

Anonim

Контролите на таблици и циклите на стъпки са обекти за показване на таблица на екрана, които добавяте към екран в Screen Painter.
От гледна точка на програмирането, контролите на таблиците и циклите на стъпки са почти абсолютно еднакви. Контролите за таблици са просто подобрени цикли на стъпки, които показват данни с външния вид и усещането, свързани с таблици в настолни приложения.
С контролите на таблицата потребителят може:

  • Превъртете през таблицата вертикално и хоризонтално
  • Преоразмерете ширината на колона
  • Превъртане в поле (когато съдържанието на полето е по-широко от полето)
  • Изберете редове или колони в таблицата
  • Пренаредете последователността на колоните
  • Запазете текущите настройки на дисплея за бъдеща употреба

Контролите за таблици също предлагат специални функции за форматиране (някои автоматични, други по избор), които улесняват гледането и използването на таблици. Контролът на масата осигурява -

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

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


Синтаксис
За да се справите с контролите на таблици в програмите ABAP, трябва да декларирате контрол в частта за деклариране на програмата за всяка контрола на таблица, като използвате следния израз:

КОНТРОЛИ  ТИП TABLEVIEW ИЗПОЛЗВАНЕ НА ЕКРАН 

където е името на контрола на таблицата на екран в програмата ABAP. Контролът позволява на програмата ABAP да чете атрибутите на контрола на таблицата и да влияе върху контролата. Тук е номерът на екрана, където се зареждат началните стойности на таблицата.
Позицията на курсора за контрола на таблица може да бъде зададена по следните начини:
При PBO можете да зададете курсора на конкретно поле на определен ред на контрола на таблица.

ЗАДАВАНЕ НА ПОЛЕТО НА КУРСОРА  LINE 
 [OFFSET ]

Използвайки допълнителното допълнение OFFSET, можете да въведете изместването на курсора в полето, както е описано в Настройка на позицията на курсора.
В PAI можете да прочетете текущата позиция на курсора.

ВЗЕМЕТЕ ПОЛЕ НА КУРСОРА  ЛИНИЯ 
 ... 

В допълнение към информацията, дадена в Намиране на позицията на курсора, поле съдържа информация за кой ред от контрола на таблицата е включен курсорът в момента. Можете също да използвате

ВЗЕМЕТЕ КУРСОРА 
.

за да определите реда на контрола на таблицата. SY-SUBRC ви позволява да проверите дали курсорът е поставен в ред на контрола на таблица.
За да получите съответния ред на вътрешната таблица:

ВЗЕМЕТЕ КУРСОР реда 
.ind = 
 -top_line + 
 - 1.Прочетете таблица  индекс ind.

Системната променлива stepl - съдържа текущия индекс на таблица в цикъл ... endloop. Loopc - съдържа брой редове, видими в таблицата.
За създаване на контрола
на таблица 1. Добавете елемент за управление на таблица към вашия екран 2.
Дайте име на контролата на таблицата. В програмата ABAP декларирайте структура със същия (CONTROLS тип TABLEVIEW ИЗПОЛЗВАНЕ НА ЕКРАН )
3. За създаване на полета отидете на функцията Dict./Program fields.

  • Въведете името на структурата, чиито полета искате. (Ако искате да го изберете от речника на вашата програма, щракнете върху съответния бутон).
  • В списъка с полета изберете полетата, които искате, и изберете добре.
  • Щракнете в областта за управление на таблицата

Ако искате колона за избор, поставете отметка в съответното квадратче в атрибутите и му дайте име. Създайте полето в програмата ABAP.
В PBO трябва да имате изявлението

LOOP на  ИЗПОЛЗВАНЕ НА КОНТРОЛ .ENDLOOP.

В PAI трябва да имате.

LOOP в .ENDLOOP.

Предаването на данни между екрана и вътрешната таблица се случва в рамките на цикли. може да се използва за контрол, когато се извършва прехвърлянето на данни
За промяна на атрибутите на отделни клетки временно променете таблицата SCREEN в PBO. Можете да промените атрибутите на структурата, създадена от оператора CONTROLS

 -fixed_cols и т.н. са атрибутите на контролата -cols-index и т.н. са атрибутите на колоните. -cols-screen-invisible etc и т.н. са атрибутите на екрана на всяка колона.