ALV jelentések be SAP Oktatóanyag – ABAP List Viewer
⚡ Okos összefoglaló
ALV jelentések be SAPAz ABAP List Viewer által létrehozott listaelemek oszlopigazítást, rendezést, szűrést, összegzéseket és részösszegeket biztosítanak egyéni kódolás nélkül. Ez az oldal ismerteti az egyszerű, a blokk és a hierarchikus listatípusokat, azok REUSE függvénymoduljait és megjelenítési változatait.

Mi az ALV? SAP ABAP?
A jelentések általánosan elvárt funkciói az „oszlopok igazítása”, a rendezés, a szűrés, a részösszegek, az összegek stb. Ezeknek a nulláról történő megvalósítása sok kódolási erőfeszítést igényel. Ennek elkerülésére használhatjuk az ABAP listamegjelenítő (ALV) nevű koncepciót.
Ezen jelentések mindegyike előírja funkciómodulok amelyek elősegítik a kívánt teljesítmény előállítását különösebb erőfeszítés nélkül. Nézzük meg őket részletesen –
A klasszikus ALV három listatípust kínál, és mindegyikhez tartozik egy REUSE függvénymodul készlet:
- Egyszerű jelentés: egy belső táblázat, amely listaként vagy rácsként jelenik meg.
- Blokkjelentés: több belső táblázat, amelyek egymás alatt, különálló blokkokként jelennek meg.
- Hierarchikus jelentés: egy fejléctábla és egy elemtábla, amely egy megosztott kulccsal van összekapcsolva.
Egyszerű jelentés
Ezekben fontos funkciómodulok jelentést vannak -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Ez a funkciómodul egy mezőkatalógus feltöltésére szolgál, amely elengedhetetlen az adatok ALV-ben történő megjelenítéséhez.
Ha a kimeneti adatok egyetlen szótártáblázatból származnak, és az összes oszlop ki van jelölve, akkor nem kell kizárólag a mezőkatalógust létrehoznunk. Elegendő megemlíteni a tábla nevét paraméterként (I_structure_name) a REUSE_ALV_LIST_DISPLAY-ben. De más esetekben létre kell hoznunk.
Megjegyzés: A mezőkatalógus manuálisan is kitölthető úgy, hogy az összes szükséges adatot kitölti a belső táblázatban
A fontos paraméterek a következők:
1. Exportálás:
- I_program_name : jelentésazonosító
- I_internal_tabname : a belső kimeneti tábla
- I_inclname : tartalmazza vagy a jelentés neve, ahol az összes dinamikus űrlapot kezelik.
2. Változás
- ct_fieldcat : an belső asztal az SLIS_T_FIELDCAT_ALV típussal, amely az SLIS típuskészletben van deklarálva.
REUSE_ALV_LIST_DISPLAY
Ez az a funkciómodul, amely kinyomtatja az adatokat.
A fontos paraméterek a következők:
1. Exportálás:
- I_callback_program : jelentésazonosító
- I_bypassing_buffer : 'X'
- I_buffer_active: ''
- I_callback_pf_status_set : rutin, ahol a felhasználó beállíthatja saját pf állapotát vagy megváltoztathatja a meglévő pf állapot funkcióit.
- I_callback_user_command : rutin, ahol a függvénykódokat kezelik.
- I_structure name : a szótártábla neve
- Is_Layout : a jelentés elrendezésének beállítására szolgáló struktúra
- It_fieldcat: belső táblázat az összes nyomtatandó mező és attribútumainak listájával (ezt a táblázatot a függvény automatikusan feltöltheti)
- It_events: belső tábla az ALV összes lehetséges eseményének listájával és a megfelelő űrlapnevekkel.
2. Táblázatok:
- a. t_outtab: belső tábla a kiadandó adatokkal
ÚJRAHASZNÁLT_ESEMÉNYEK_GET
Az aa listatípus lehetséges események táblázatát adja vissza
1. Importálás:
Et_Events:Az eseménytáblázat a megadott listatípushoz ("NAME" oszlop) az összes lehetséges CALLBACK eseménnyel visszaküldésre kerül. Ahhoz, hogy a visszahívás feldolgozza az eseményeket, ki kell tölteni a 'FORM' mezőt. Ha a mező inicializálva van, az esemény figyelmen kívül marad. A bejegyzés kiolvasható az eseménytáblából, a 'FORM' mező kitöltése és a bejegyzés az SLIS típusú készlet konstansaival módosítható.
2. Exportálás:
I_list_type: 0 = egyszerű lista REUSE_ALV_LIST_DISPLAY
1 = hierarchikus-szekvenciális lista REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = egyszerű blokkolista REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarchikus-szekvenciális blokklista REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Az ABAP4.6 verzió új funkciója, amely az eredményeket rácsban jeleníti meg előnézet helyett.
Paraméterek: ugyanaz, mint a reuse_alv_list_display
Megjegyzés: A rács nem képes nagy adatmennyiséget kezelni. Az olyan függvények, mint a rendezés vagy a lefelé görgetés, sok erőforrást/időt igényelnek, ha a megjelenítendő adatmennyiség nagy. Nincs egyértelmű definíció arra vonatkozóan, hogy ha az adatmennyiség X, akkor lista vagy rács legyen a megfelelő, de a fejlesztőnek a tapasztalata alapján kell döntenie. Ha nem biztos benne, akkor a lista a jobb választás.
REUSE_ALV_COMMENTARY_WRITE
Ez az Oldal teteje eseményben használható a lista fejléceinek és egyéb megjegyzéseinek kinyomtatására.
Fontos paraméterek
- It_list_commentary : Belső tábla slis_t_listheader típusú fejlécekkel.
Ennek a belső táblázatnak három mezője van:
- Típus: „H” – fejléc, „S” – kijelölés, „A” – művelet
- Billentyű: csak akkor, ha a típus "S".
- Info: a nyomtatandó szöveg
Példa: Egy egyszerű ALV-rácsjelentés
Az alábbi program a fenti függvénymodulokat egy működő jelentéssé alakítja. Beolvassa az SPFLI repülési menetrend táblát, automatikusan felépíti a mezőkatalógust, és az eredményt egy rácsban jeleníti meg.
REPORT z_alv_demo. TYPE-POOLS: slis. DATA: lt_spfli TYPE STANDARD TABLE OF spfli, lt_fieldcat TYPE slis_t_fieldcat_alv, ls_layout TYPE slis_layout_alv. START-OF-SELECTION. * 1. Read the data into the output table SELECT * FROM spfli INTO TABLE lt_spfli. * 2. Build the field catalog from the dictionary structure CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid i_internal_tabname = 'LT_SPFLI' i_structure_name = 'SPFLI' CHANGING ct_fieldcat = lt_fieldcat. * 3. Set the layout and display the grid ls_layout-zebra = 'X'. ls_layout-colwidth_optimize = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = ls_layout it_fieldcat = lt_fieldcat i_save = 'A' TABLES t_outtab = lt_spfli.
Három paraméter végzi a munka nagy részét. Az I_STRUCTURE_NAME lehetővé teszi a mezőkatalógus szótárból való származtatását, így nem kell kézzel oszlopokat leírni. Az IS_LAYOUT bekapcsolja a csíkozott sorokat és az optimalizált oszlopszélességeket. Az I_SAVE = 'A' lehetővé teszi mind a felhasználóspecifikus, mind a standard megjelenítési változatok mentését a kész listából.
Jelentés blokkolása
Ez egy egyszerű jelentésnek tűnik, de ez a jelentés csak a rendezés és a szűrés funkcióival rendelkezik. Ez a jelentés akkor használható, ha egynél több jelentést kell megjelenítenie a kimeneten. Technikailag, ha több belső táblával rendelkezik, amelyekben az adatok külön blokkokként jelennek meg, akkor az ALV blokkjelentését választjuk.
A jelentés elkészítéséhez használt fontos funkciók a következők:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Ez a funkciómodul az alapértelmezett gui állapot stb. beállítására szolgál. A paraméterek hasonlóak a reuse_alv_list_display vagy reuse_alv_grid_display paraméterekben használthoz
REUSE_ALV_BLOCK_LIST_APPEND
Ez a funkciómodul hozzáadja az adatokat a blokkhoz.
Fontos paraméterek
1. Exportálás:
- is_layout : blokk elrendezési beállításai
- it_fieldcat : mezőkatalógus
- I_tabname : belső táblanév az összes lehetséges eseménnyel
2. Táblázatok:
- t_outtab: belső tábla kimeneti adatokkal.
REUSE_ALV_BLOCK_LIST_DISPLAY
Ez a funkciómodul megjeleníti a listát a fenti függvény által hozzáfűzött adatokkal.
Paraméterek: Minden paraméter nem kötelező.
Hierarchikus jelentések
A hierarchikus megjelenítés a kapcsolódó adatok megjelenítésére szolgál. Például az értékesítési rendelés és a tétel részletei. Itt az értékesítési rendelés részletei lehetnek a fejléc adatok, míg a vevői rendelésben szereplő cikkek a cikkadatok lehetnek
Az ehhez használt funkciómodul az
REUSE_ALV_HIERSEQ_LIST_DISPLAY
export:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header : A programban a legmagasabb hierarchiaszint kimeneti adatait tartalmazó belső tábla neve.
- I_tabname_item : A programban a legalacsonyabb hierarchiaszint kimeneti adatait tartalmazó belső tábla neve.
- Is_keyinfo : Ez a struktúra tartalmazza a fejléc és az elemtábla mezőneveit, amelyek összekapcsolják a két táblát (megosztott kulcs).
Asztalok
- t_outtab_header : Fejléc tábla a kiadandó adatokkal
- t_outtab_item : A programban a legalacsonyabb hierarchiaszint kimeneti adatait tartalmazó belső tábla neve.
A belső táblák, struktúrák és állandók összes definíciója egy típuskészletben van deklarálva SLIS. Ez a belső táblázat automatikusan feltölthető a REUSE_ALV_FIELDCATALOG_MERGE' használatával.
Megjelenítési változatok
- A megjelenítési változatok az alv kimenet alapértelmezett tulajdonságainak beállítására szolgálnak, például rendezési feltételek, szűrési feltételek, összegzés és részösszegzés stb.
- A megjelenítési változatok lehetnek felhasználóspecifikusak és szabványosak (a szabványos változatokat bármely felhasználó használhatja)
- A menthető megjelenítési változatok típusát az i_save paraméter szabályozza, amelyet a reuse_alv_list_display / reuse_alv_grid_display függvénymodulokban adnak át.
- A kiválasztási képernyőn megadhat egy lehetőséget a használni kívánt megjelenítési változat kiválasztásához
A megjelenítési változatok kiválasztásához/érvényesítéséhez kapcsolódó általános funkciómodulok a következők
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
💡 Tipp: Az I_SAVE paramétert 'U' értékkel kell megadni, ha csak a felhasználóspecifikus változatokat szeretné engedélyezni, az 'X' értékkel csak a standard változatokat, az 'A' értékkel pedig mindkettőt. Az üres érték teljesen blokkolja a mentést.
Ez minden ABAP – ALV programozás!
