SAP ABAP táblázatvezérlés példákkal
⚡ Okos összefoglaló
SAP Az ABAP Table Control egy belső táblázatot jelenít meg görgethető rácsként a Képernyőbe épített képernyőn. PainterEz az oldal ismerteti a funkcióit, a CONTROLS deklarációt, a kurzorkezelést, a PBO és PAI ciklusokat, valamint az oszlopattribútumokat.

Mi az a táblavezérlő? SAP ABAP?
A táblázatvezérlők és a lépéshurkok olyan objektumok, amelyek a képernyő táblázatának megjelenítésére szolgálnak, és amelyeket a Képernyő képernyőjéhez adhat hozzá Painter.
Programozási szempontból az asztali vezérlők és a lépéshurkok szinte teljesen megegyeznek. A táblázatvezérlők egyszerűen továbbfejlesztett lépéshurkok, amelyek az adatokat az asztali alkalmazások táblázataihoz hasonló megjelenéssel és érzéssel jelenítik meg.
Az ABAP Table Control jellemzői
A táblázatvezérlőkkel a felhasználó:
- Görgessen végig a táblázaton függőlegesen és vízszintesen
- Mérje át az oszlop szélességét
- Görgetés a mezőn belül (ha a mező tartalma szélesebb, mint a mező)
- Válassza ki a táblázat sorait vagy oszlopait
- Rendezze át az oszlopok sorrendjét
- Mentse el az aktuális megjelenítési beállításokat későbbi használatra
A táblázatvezérlők speciális formázási funkciókat is kínálnak (néhány automatikus, néhány opcionális), amelyek megkönnyítik a táblázatok megtekintését és használatát. A Table Control a következőket kínálja:
- automatikus táblázatméretezés (függőleges és vízszintes), amikor a felhasználó átméretezi az ablakot
- elválasztó vonalak a sorok és az oszlopok között (függőleges és vízszintes)
- oszlopfejléc mezőket minden oszlophoz
Általánosságban elmondható, hogy a táblázatvezérlő által biztosított szolgáltatások közül sok a rendszer helyileg kezelhető SAPgui frontend, így nem kell őket magadnak programozni. Ez alól az egyetlen figyelemre méltó kivétel a függőleges görgetés.
Példa (TZ60 tranzakció)
A fenti TZ60 tranzakció a végeredményt mutatja: egy rács oszlopfejlécekkel, elválasztó vonalakkal és egy kijelölő oszloppal. A régebbi lépésciklushoz képesti különbségeket a következőkben foglaljuk össze.
Táblázatvezérlés vs. Lépcsőhurok
A lépésciklusok egyik jellemzője, hogy a táblázat sorai több sort is átfoghatnak a képernyőn. Egy táblázat vezérlőelem egy sorának ezzel szemben mindig egyetlen sorban kell lennie (bár a görgetés lehetséges). Az alábbi táblázat összehasonlítja a két képernyőelemet.
| Kritériumai | Táblázatvezérlés | Lépcsőhurok |
|---|---|---|
| Sor elrendezése | Egy sor mindig egy képernyősor | Egy sor több képernyősort is átfoghat |
| Oszlopkezelés | Az oszlopok átméretezhetők, átrendezhetők és elrejthetők a felhasználó által. | A képernyőn definiált oszlopelrendezés rögzített |
| Gördülő | Vízszintes görgetés a frontend által, függőleges görgetés PAI-ban programozva | Teljes egészében ABAP kódban programozva |
| Nyilatkozat | VEZÉRLŐK … GÉPELJE A KÉPERNYŐ HASZNÁLATÁVAL A TABLEVIEW KÁRTYÁT | Nincs vezérlőstruktúra a programban |
| Megjelenítési beállítások | A felhasználó elmenthet egy személyes elrendezést | Nem érhető el |
Mivel a táblavezérlő a modern elem, az oldal többi része azt programozza.
Táblázatvezérlő létrehozása és programozása
Egy táblavezérlőhöz szükség van egy képernyő elemre, egy vezérlőstruktúrára a programban, valamint egy ciklusra mind a PBO-ban, mind a PAI-ban. Az alábbi alfejezetek ezt a sorrendet követik.
Az irányítás deklarálása
A táblavezérlők ABAP programokban történő kezeléséhez minden táblavezérlőhöz deklarálnia kell egy vezérlőt a program deklarációs részében a következő utasítás használatával:
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
ahol a táblázatvezérlő neve az ABAP program képernyőjén. A vezérlő lehetővé teszi, hogy az ABAP program beolvassa a táblavezérlő attribútumait, és befolyásolja a vezérlőt. a képernyő száma, ahol a táblázat kezdőértékei betöltődnek.
Kurzor pozíciójának beállítása és leolvasása
A táblázatvezérlő kurzorpozíciója a következő módokon állítható be:
A PBO-nál a kurzort a táblázatvezérlő egy adott sorának egy adott mezőjére állíthatja.
SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]
Az opcionális kiegészítés OFFSET használatával megadhatja a kurzor eltolását a mezőben a Kurzorpozíció beállítása részben leírtak szerint.
A PAI-nál leolvashatja a kurzor aktuális pozícióját.
GET CURSOR FIELD <f> LINE <lin> ...
A Kurzor pozíciójának megállapítása mezőben megadott információkon kívül információkat tartalmaz arról, hogy a táblázatvezérlő melyik sorában áll a kurzor éppen. Használhatod is
GET CURSOR LINE <lin>.
a táblázatvezérlő sorának meghatározásához. Az SY-SUBRC lehetővé teszi annak ellenőrzését, hogy a kurzor egy táblázatvezérlő sorában van-e.
A megfelelő belső táblázat sorának beolvasása
A megfelelő sor megszerzéséhez a belső asztal:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
A stepl rendszerváltozó az aktuális táblázatsor indexét tartalmazza egy ciklusban… endloop. Loopc – a táblázatban látható sorok számát tartalmazza
A vezérlő létrehozása a képernyőn Painter
Táblázatvezérlő létrehozásához
- Táblázatvezérlő elem hozzáadása a képernyőhöz
- Adjon nevet a vezérlőtáblának. Az ABAP programban deklaráljon egy ugyanolyan struktúrát ( CONTROLS típus TABLEVIEW USING SCREEN )
- Mezők létrehozásához menj a Szótár/Programmezők funkcióhoz.
- Adja meg annak a szerkezetnek a nevét, amelynek mezőit szeretné használni. (Ha azt szeretné, hogy a program szótárából vegye ki, kattintson a megfelelő puhgombra).
- A mezőlistában válassza ki a kívánt mezőket, majd kattintson az OK gombra.
- Kattintson a táblázat vezérlőterületére
Ha kijelölő oszlopot szeretne, jelölje be a megfelelő jelölőnégyzetet az attribútumok között, és adjon neki nevet. Hozza létre a mezőt a ABAP program.
A PBO és PAI hurkok kódolása
A PBO-ban meg kell adni a nyilatkozatot
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
A PAI-ban kellett volna.
LOOP at <itab>. ENDLOOP.
A képernyő és a belső tábla közötti adatátvitel a ciklusokon belül történik. A belső tábla feltöltésekor használjuk a DESCRIBE TABLE utasítást. LINES -lines, a vezérlőben lévő sorok teljes számának tárolására. A FIELD utasítással szabályozható az adatátvitel időpontja.
⚠️ Figyelmeztetés: A PBO ciklusnak a USING CONTROL paranccsal kell elneveznie a vezérlőt. Enélkül a vezérlő nem tudja, hány sor létezik, és a függőleges görgetés nem működik.
Oszlopattribútumok módosítása futásidőben
Az egyes cellák attribútumainak megváltoztatásához ideiglenesen módosítsa a SCREEN táblát a PBO-ban. A CONTROLS utasítással létrehozott struktúra attribútumait módosíthatja
<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.
💡 Tipp: Hurok át -cols a PBO-ban egy adott felhasználói szerepkör oszlopának elrejtéséhez vagy védelméhez, egy második képernyő létrehozása helyett.

