SAP ABAP táblázatvezérlés példákkal
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
A lépéshurkok egyik jellemzője, hogy a táblázat sorai több sort is átnyúlhatnak a képernyőn. Ezzel szemben egy táblázatvezérlő sorának mindig egyetlen sorban kell lennie (bár a görgetés lehetséges).
Á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ó)
Szintaxis
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.
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. A SY-SUBRC lehetővé teszi annak ellenőrzését, hogy a kurzor egy táblázatvezérlő sorában van-e elhelyezve.
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
Táblázatvezérlő létrehozásához
1. Adjon hozzá egy táblázatvezérlő elemet a képernyőhöz
2. Adjon nevet a táblázatvezérlőnek. Az ABAP programban deklaráljon egy struktúrát ugyanazzal ( CONTROLS írja be a TÁBLÁZAT KÉPERNYŐ HASZNÁLATÁBAN )
3.Mezők létrehozásához lépjen a Dikt./Programmezők funkcióba.
- 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-ban meg kell adni a nyilatkozatot
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
A PAI-ban kellett volna.
LOOP at <itab>. ENDLOOP.
A hurkon belül történik az adatátvitel a képernyő és a belső tábla között. A belső tábla feltöltésekor használja a DESCRIBE TABLE parancsot. VONALAK -lines, a vezérlőben lévő sorok teljes számának tárolására. A FIELD utasítással szabályozható, hogy mikor történik meg az adatátvitel
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.