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.

  • 🖥️ Alapvető definíció: A táblavezérlő egy továbbfejlesztett lépésciklus, amely a táblaadatokat egy asztali alkalmazásrács megjelenésével és érzetével jeleníti meg.
  • 🧰 Beépített jellemzők: A görgetést, az oszlopok átméretezését, az oszlopok átrendezését, a sorok kijelölését és a mentett megjelenítési beállításokat a SAPgrafikus felhasználói felület.
  • 📜 Egysoros szabály: Egy lépésciklus-sor több képernyősort is átfoghat, míg egy táblavezérlő sornak mindig egy soron kell elférnie.
  • ⌨️ Nyilatkozat: KEZELŐSZERVEK TABLEVIEW ÍRÁSA KÉPERNYŐ HASZNÁLATÁVAL a képernyő elemet az ABAP programhoz csatolja.
  • 🎯 Kurzorkezelés: A SET CURSOR parancs a PBO-ra pozícionálja a kurzort, a GET CURSOR parancs pedig a PAI-nál lévő mezőt és sort olvassa be.
  • 🔁 Adatátvitel: A LOOP AT … USING CONTROL PBO-n, egy sima LOOP AT pedig PAI-n fut, és az adatok a képernyő és a belső tábla között mozognak ezekben a ciklusokban.
  • 🎨 Dinamikus attribútumok: A SCREEN tábla és a A -cols szerkezet futásidejű módon módosítja az oszlopok láthatóságát és formázását.

SAP ABAP táblázatvezérlő

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

SAP ABAP táblázatvezérlő

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

  1. Táblázatvezérlő elem hozzáadása a képernyőhöz
  2. Adjon nevet a vezérlőtáblának. Az ABAP programban deklaráljon egy ugyanolyan struktúrát ( CONTROLS típus TABLEVIEW USING SCREEN )
  3. 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.

GYIK

A frontend kezeli a vízszintes görgetést, de a függőleges görgetés PAI-ban van kódolva. Értékelje ki a SY-UCOMM-ot a görgetési függvények kódjaihoz, és helyezze át a vezérlőstruktúra top_line mezőjét a következő PBO futása előtt.

An ALV rács Rendezést, szűrést, összegzést és exportálást biztosít extra kód nélkül, így illik a megjelenített listákhoz. A táblázatos vezérlőelemek akkor előnyösebbek, ha a képernyőnek egyéni beviteli logikára és minden cella feletti teljes kontrollra van szüksége.

Az SY-STEPL a képernyőcikluson belül aktuálisan feldolgozott sor indexét, az SY-LOOPC pedig a képernyőn látható sorok számát tartalmazza. Mindkettő csak a vezérlő LOOP … ENDLOOP ciklusán belül töltődik ki.

Igen. Az ABAP fejlesztőeszközök mesterséges intelligencia asszisztensei a belső tábla leírásából készítik el a CONTROLS deklarációt, mindkét képernyőciklust és a görgetési logikát. A generált folyamatlogikát még tesztelni kell a képernyőn. Painter.

A mesterséges intelligencia által fejlesztett elemzőeszközök beolvassák a dynpro folyamatlogikáját, listázzák a mezőket és a függvénykódokat, és javaslatot tesznek egyenértékű Fiori vagy ALV alapú tervre. A javaslat lerövidíti a modernizációs projekt elemzési fázisát.

Foglald össze ezt a bejegyzést a következőképpen: