SAP ABAP Table Control példákkal

Anonim

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ŐK  TÍPUS TÁBLÁZAT A KÉPERNYŐ HASZNÁLATÁVAL 

ahol a az asztalvezérlő neve az ABAP program egyik képernyőjén. A vezérlés lehetővé teszi az ABAP program számára, hogy elolvassa a tábla vezérlő attribútumait és befolyásolja a vezérlést. Itt a az a képernyő száma, ahová a táblázat kezdeti értékei betöltődnek.
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ása  LINE 
 [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ét  LINE 

A Kurzor pozíciójának megismerése alatt megadott információk mellett a mező tartalmazza az információkat arról, hogy a táblázat melyik vezérlési során tartózkodik a kurzor. Használhatja is

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 type TABLEVIEW USER SCREEN )
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 a  oldalon.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 LINES -sorokat a vezérlők sorainak teljes számának tárolásához. vezérelhető, amikor az adatátvitel megtörténik.
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.