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ó)

SAP ABAP táblázatvezérlő

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.