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.

  • 📋 Fő cél: Az ABAP listamegjelenítő a standard listafunkciókat előre elkészített függvénymodulokon keresztül biztosítja, így azokat soha többé nem kell újra programozni.
  • 🗂️ Mezőkatalógus: A REUSE_ALV_FIELDCATALOG_MERGE függvény létrehozza azt a katalógust, amely minden kimeneti oszlopot leír, és manuálisan is kitölthető.
  • 🖥️ Lista és rács: A REUSE_ALV_LIST_DISPLAY egy klasszikus listát nyomtat ki, a REUSE_ALV_GRID_DISPLAY pedig ugyanazokat az adatokat jeleníti meg egy rácsos vezérlőelemben.
  • 🧱 Blokkjelentés: Az INIT, APPEND és DISPLAY utasítások több belső táblát egyesítenek egyetlen, különálló blokkokból álló kimenetté.
  • ???? Hierarchikus jelentés: A REUSE_ALV_HIERSEQ_LIST_DISPLAY egy fejléctáblát és egy elemtáblát összekapcsol az IS_KEYINFO-ban található megosztott kulcson keresztül.
  • 🧰 Típusú medence SLIS: A klasszikus ALV által használt összes struktúra, táblatípus és konstans deklarálva van az SLIS típuskészletben.
  • 💾 Kijelzőváltozatok: Egy változat tárolja a rendezési, szűrési és összegzési alapértelmezéseket, és az I_SAVE paraméter dönti el, hogy felhasználóspecifikus vagy szabványos.

ALV jelentések be SAP ABAP

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:

  1. Típus: „H” – fejléc, „S” – kijelölés, „A” – művelet
  2. Billentyű: csak akkor, ha a típus "S".
  3. 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

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. 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!

GYIK

A REUSE modulok a klasszikus, függvényalapú ALV-hez tartoznak. A CL_GUI_ALV_GRID egy objektumorientált vezérlő, amely egy dynpro-n található egyéni konténerbe van ágyazva, és szerkeszthető cellákat, valamint metódusokon keresztüli eseménykezelést kínál.

Állítsd be a DO_SUM függvényt a mezőkatalógusban a hozzáadandó oszlophoz, és adj át egy rendezési táblázatot bekapcsolt SUBTOT-tal a sorokat csoportosító oszlophoz. Nincs szükség extra számítási kódra.

Adja át egy űrlap nevét az I_CALLBACK_USER_COMMAND függvénynek. Az űrlap fogadja a függvénykódot és a kiválasztott sort, így a program beolvashatja a rekordot, és megnyithat egy részletlistát vagy egy tranzakciót.

Igen. Az ABAP fejlesztőeszközökben található mesterséges intelligencia asszisztensek a szükséges oszlopok leírásából állítják elő a SELECT-et, a mezőkatalógust és a REUSE_ALV_GRID_DISPLAY meghívását. A létrehozott SELECT esetében továbbra is teljesítmény-ellenőrzésre van szükség.

Nem. Az ALV továbbra is a standard teljesítmény. SAP GUI-jelentések. A mesterséges intelligencia asszisztensek ezen felül hozzáadott értéket képviselnek egy hosszú lista összefoglalásával, a kiugró értékek kiszűrésével és a megjelenített adatokkal kapcsolatos kérdések egyszerű nyelven történő megválaszolásával.

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