Контрола табеле САП АБАП са примерима

Anonim

Контроле табеле и петље корака су објекти за приказ табеле на екрану које додате на екран у Сликару екрана.
Са програмског становишта, контроле табеле и петље корака су готово потпуно исте. Контроле табела су једноставно побољшане петље корака које приказују податке са изгледом и стилом повезаним са табелама у десктоп апликацијама.
Помоћу контрола табеле, корисник може:

  • Померите се кроз табелу вертикално и хоризонтално
  • Промените величину ширине колоне
  • Померите се унутар поља (када је садржај поља шири од поља)
  • Изаберите редове или колоне табеле
  • Преуредите редослед колона
  • Сачувајте тренутна подешавања екрана за будућу употребу

Контроле табела такође нуде посебне функције форматирања (неке аутоматске, неке опционалне) које олакшавају преглед и употребу табела. Контрола табеле пружа -

  • аутоматска промена величине табеле (вертикална и хоризонтална) када корисник промени величину прозора
  • линије раздвајања између редова и између колона (вертикалне и хоризонталне)
  • поља заглавља колоне за све колоне

Једна од карактеристика петљи корака је да се њихови редови табеле могу простирати на више линија на екрану. С друге стране, ред контроле табеле мора увек бити садржан у једном реду (мада је помицање могуће).
Генерално, многим функцијама које пружа контрола табеле управља локално САПгуи интерфејс вашег система, тако да их не морате сами програмирати. Једини изузетан изузетак овоме је вертикално помицање .
Пример (трансакција ТЗ60)


Синтакса
Да бисте руковали контролама табела у програмима АБАП, морате декларирати контролу у делу декларације програма за сваку контролу табеле користећи следећу изјаву:

КОНТРОЛЕ <цтрл> ТИП ТАБЛЕВИЕВ КОРИШЋЕЊЕМ ЕКРАНА <сцр>

где је <цтрл> назив контроле табеле на екрану у програму АБАП. Контрола омогућава програму АБАП да чита атрибуте контроле табеле и да утиче на контролу. Овде је <сцр> број екрана на којем су учитане почетне вредности табеле.
Положај курсора за контролу табеле може се поставити на следеће начине:
На ПБО можете поставити курсор на одређено поље одређеног реда контроле табеле.

ПОДЕШИ ПОЉЕ КУРСОРА <ф> ЛИНЕ <лин> [ОФФСЕТ <офф>]

Користећи опционални додатак ОФФСЕТ, помак курсора можете унијети у поље како је описано у Постављање положаја курсора.
На ПАИ можете прочитати тренутну позицију курсора.

ДОБИЈТЕ ПОЉЕ КУРСОРА <ф> ЛИНЕ <лин> ... 

Поред података датих у одељку Проналажење положаја курсора, поље <лин> садржи информације у којем је реду табеле контрола курсора тренутно укључена. Такође можете користити

ДОБИЈТЕ КУРСОР <ЛИН>.

да би се одредио ред контроле табеле. СИ-СУБРЦ вам омогућава да проверите да ли је курсор постављен у ред контроле табеле.
Да бисте добили одговарајући ред интерне табеле:

ДОБИЈТЕ КУРСОР ред <лин>.инд = <цонтрол_табле> -топ_лине + <лин> - 1.Прочитајте табелу <итаб> индекс инд.

Системска променљива степл - садржи тренутни индекс линије табеле у петљи ... ендлооп. Лоопц - садржи број линија видљивих у табели
Да бисте креирали контролу табеле 1.
Додајте елемент контроле табеле на свој екран 2.
Дајте име контроли табеле. У програму АБАП пријавите структуру са истим (ЦОНТРОЛС <тцл> тип ТАБЛЕВИЕВ УПОТРЕБА ЕКРАНА <сцрн>)
3.Да бисте креирали поља, идите на функцију Дицт./Програм фиелдс.

  • Унесите име структуре чија поља желите. (Ако желите да га одабере из речника вашег програма, кликните одговарајуће дугме).
  • На листи поља одаберите поља која желите и одаберите ок.
  • Кликните у област за управљање табелом

Ако желите колону за избор, означите одговарајуће поље за потврду у атрибутима и дајте му име. Направите поље у програму АБАП.
У ПБО бисте требали имати изјаву

ЛООП на <итаб> КОРИШЋЕЊЕМ КОНТРОЛЕ <цнтрл_наме>.ЕНДЛООП.

У ПАИ-у који бисте требали имати.

ЛООП у <итаб>.ЕНДЛООП.

Унутар петљи долази до преноса података између екрана и унутрашње табеле. Када попуните интерну табелу, користите ДЕСЦРИБЕ ТАБЛЕ <итаб> ЛИНЕС <цнтрл_наме> -линес, да укупан број линија сачувате у контроли. Наредба ФИЕЛД може се користити за контролу када се врши пренос података.
Да бисте променили атрибуте појединачних ћелија, привремено промените табелу СЦРЕЕН у ПБО. Можете да промените атрибуте структуре креиране помоћу наредбе ЦОНТРОЛС

<цнтрл> -фикед_цолс итд су атрибути контроле<цнтрл> -цолс-индек итд су атрибути колона.<цнтрл> -цолс-сцреен-невидљиви итд су атрибути екрана сваке колоне.