A táblázatvezérlők és a lépéshurkok olyan objektumok a képernyőtábla megjelenítéséhez, amelyeket hozzáad a képernyőfestő képernyőjéhez.
Programozási szempontból a táblázatvezé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 asztali alkalmazások tábláihoz társított megjelenésével és megjelenésével jelenítik meg az adatokat.
Asztali vezérlőkkel a felhasználó:
- Lapozzon végig függőlegesen és vízszintesen az asztalon
- Méretezze át az oszlop szélességét
- Görgetés egy mezőn belül (ha a mező tartalma szélesebb, mint a mező)
- Válassza ki a táblázat sorait vagy oszlopait
- Rendezze újra az oszlopok sorrendjét
- Mentse 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émelyik automatikus, más opcionális), amelyek megkönnyítik a táblázatok megtekintését és használatát. A táblázatvezérlés biztosítja -
- automatikus táblázat átmé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écmezők az összes oszlophoz
A lépéshurkok egyik jellemzője, hogy az asztaluk sorai egynél több sort ölelhetnek át a képernyőn. A táblázatvezérlőnek egy sorát viszont mindig egyetlen sorban kell feltüntetni (bár a görgetés lehetséges).
Általánosságban elmondható, hogy a táblázatvezérlés által nyújtott számos funkciót a rendszer SAPgui kezelőfelülete kezeli helyben, ezért nem kell saját magának programoznia őket. Az egyetlen figyelemre méltó kivétel ez alól a függőleges görgetés .
Példa (TZ60 tranzakció)
Szintaxis
A táblázatvezérlők kezeléséhez az ABAP programokban deklarálni kell egy vezérlőt a program deklarációs részében az egyes táblavezérlőkhöz a következő utasítással:
VEZÉRLŐKTÍPUS TÁBLÁZAT A KÉPERNYŐ HASZNÁLATÁVAL
ahol a
A táblázatvezérlő kurzorpozíciója a következő módon állítható be:
A PBO-nál beállíthatja a kurzort egy táblázatvezérlő adott sorának egy adott mezőjére.
A kurzor mezőjének beállításaLINE [OFFSET ]
Az opcionális OFFSET kiegészítéssel megadhatja a kurzor eltolását a mezőben, a Kurzor pozíciójának beállítása részben leírtak szerint.
A PAI-nál leolvashatja a kurzor aktuális helyzetét.
KERESNI A kurzor mezőjétLINE …
A Kurzor pozíciójának megismerése alatt megadott információk mellett a
KERESD A kurzor vonalát.
a táblázat vezérlő sorának meghatározásához. Az SY-SUBRC lehetővé teszi annak ellenőrzését, hogy a kurzor egy táblázat vezérlő sorában legyen-e.
A belső táblázat megfelelő sorának megszerzéséhez:
GET CURSOR sor.ind = -top_line + - 1.Táblázat olvasása index ind.
A stepl rendszerváltozó - az aktuális táblasor-indexet tartalmazza egy hurokban… endloop. Loopc - a táblázatban látható sorok számát tartalmazza
Tábla vezérlő létrehozása 1.
Adjon hozzá egy táblázat vezérlő elemet a képernyőjéhez. 2.
Adjon nevet a táblázat vezérlőjének. Az ABAP programban deklaráljon egy szerkezetet ugyanazzal (CONTROLS
3. Mezők létrehozásához lépjen a Dict./Program mezők funkcióhoz.
- Írja be annak a szerkezetnek a nevét, amelynek a mezőit szeretné. (Ha azt szeretné, hogy a program szótárából válassza ki, kattintson a megfelelő puhgombra).
- A mezőlistában válassza ki a kívánt mezőket, majd válassza az OK lehetőséget.
- Kattintson a táblázat vezérlő területére
Ha kiválasztási oszlopot szeretne, jelölje be a megfelelő jelölőnégyzetet az attribútumokban, és adjon nevet. Hozza létre a mezőt az ABAP programban.
A PBO-ban rendelkeznie kell a nyilatkozattal
LOOP itt:A CONTROL HASZNÁLATÁVAL.VÉGE.
A PAI-ban meg kellett volna.
LOOP aoldalon.VÉGE.
A hurkokon belül történik az adatátvitel a képernyő és a belső táblázat között. A belső tábla feltöltésekor használja a DESCRIBE TABLE
Az egyes cellák attribútumainak megváltoztatásához ideiglenesen változtassa meg a PBO SCREEN tábláját. Megváltoztathatja a CONTROLS utasítás által létrehozott struktúra attribútumait
A-fixed_cols stb. a vezérlő attribútumaiA -cols-index stb. az oszlopok attribútumai.A -cols-screen-invisible stb. az egyes oszlopok képernyőattribútumai.