ALV teatab SAP Õpetus – ABAP-loendivaatur
⚡ Nutikas kokkuvõte
ALV teatab SAPABAP List Vieweri loodud loendid pakuvad veergude joondamist, sortimist, filtreerimist, kokkuvõtteid ja vahekokkuvõtteid ilma kohandatud kodeerimiseta. See leht selgitab liht-, plokk- ja hierarhilisi loenditüüpe, nende REUSE-funktsiooni mooduleid ja kuvamisvariante.

Mis on ALV? SAP ABAP?
Iga aruande kõige levinumad soovitud funktsioonid on „veergude joondamine“, sortimine, filtreerimine, vahesummad, summad jne. Nende nullist rakendamine nõuab palju kodeerimistööd. Selle vältimiseks saame kasutada kontseptsiooni nimega ABAP List Viewer (ALV).
Kõik need aruanded pakuvad funktsioonimoodulid mis aitavad soovitud toodangut ilma suurema vaevata toota. Vaatame neid üksikasjalikult -
Klassikaline ALV pakub kolme tüüpi loendit ja igal neist on oma REUSE-funktsiooni moodulite komplekt:
- Lihtne aruanne: üks sisemine tabel, mis on kuvatud loendi või ruudustikuna.
- Blokeeri aruanne: mitu sisemist tabelit, mis on näidatud üksteise all eraldi plokkidena.
- Hierarhiline aruanne: jagatud võtmega ühendatud päisetabel ja üksuste tabel.
Lihtne aruanne
Olulised funktsioonimoodulid neis aru on -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Seda funktsioonimoodulit kasutatakse väljade kataloogi täitmiseks, mis on oluline andmete kuvamiseks ALV-s.
Kui väljundandmed pärinevad ühest sõnastiku tabelist ja kõik veerud on valitud, ei pea me looma ainult väljade kataloogi. Piisab, kui mainida tabeli nime parameetrina (I_structure_name) loendis REUSE_ALV_LIST_DISPLAY. Kuid muudel juhtudel peame selle looma.
Märkus: Väljakataloogi saab täita ka käsitsi, täites kõik vajalikud andmed sisetabelisse
Olulised parameetrid on järgmised:
1. Eksport:
- I_programmi_nimi : aruande ID
- I_internal_tabname : sisemine väljundtabel
- I_inclname : kaasata või aruande nimi, kus käsitletakse kõiki dünaamilisi vorme.
2. Muutmine
- ct_fieldcat : an sisemine laud tüübiga SLIS_T_FIELDCAT_ALV, mis on deklareeritud tüübikogumis SLIS.
REUSE_ALV_LIST_DISPLAY
See on funktsioonimoodul, mis prindib andmed.
Olulised parameetrid on järgmised:
1. Eksport:
- I_callback_programm : teata id
- I_bypassing_buffer : 'X'
- I_buffer_active: ''
- I_callback_pf_status_set : rutiin, kus kasutaja saab määrata oma pf-oleku või muuta olemasoleva pf-oleku funktsionaalsust.
- I_callback_user_command : rutiin, kus funktsioonikoode käsitletakse.
- I_struktuuri nimi : sõnastiku tabeli nimi
- Is_Layout : struktuur aruande paigutuse määramiseks
- It_fieldcat: sisemine tabel kõigi väljade ja nende prinditavate atribuutide loendiga (funktsioon saab selle tabeli automaatselt täita)
- It_events : sisemine tabel kõigi ALV võimalike sündmuste loendiga ja neile vastavate vorminimedega.
2. Tabelid:
- a. t_outtab: sisemine tabel väljastatavate andmetega
TAASKASUTAMINE_ALV_ÜNDMUSED_GET
Tagastab aa loenditüübi võimalike sündmuste tabeli
1. Import:
Et_Events:Sündmuste tabel tagastatakse koos kõigi võimalike CALLBACK sündmustega määratud loenditüübi jaoks (veerg 'NAME'). Sündmuste töötlemiseks tagasihelistamisel tuleb täita nende väli VORM. Kui väli initsialiseeritakse, ignoreeritakse sündmust. Kirjet saab lugeda sündmuste tabelist, täita väli 'VORM' ja kirjet muuta konstantide abil tüübikogumi SLIS-ist.
2. Eksport:
I_list_type: 0 = lihtne loend REUSE_ALV_LIST_DISPLAY
1 = hierarhiline-järjestikune loend REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = lihtne blokeeringute loend REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarhilis-järjestikune plokkide loend REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Uus funktsioon ABAP4.6 versioonist tulemuste kuvamiseks ruudustikus, mitte eelvaatena.
Parameetrid: samad, mis reuse_alv_list_display
Märkus: Ruudustik ei suuda suuri andmemahtusid hallata. Funktsioonid nagu sortimine ja alla kerimine tarbivad palju ressursse/aega, kui kuvatavate andmete maht on suur. Puudub selge definitsioon, et kui andmete maht on X, siis kas valida loend või ruudustik, aga arendaja peab oma kogemuste põhjal otsustama. Kui pole kindel, on parem valik loend.
REUSE_ALV_COMMENTARY_WRITE
Seda kasutatakse sündmusel Top-of-page, et printida loendi pealkirjad ja muud kommentaarid.
Olulised parameetrid
- It_list_commentary : sisemine tabel pealkirjadega, mille tüüp on slis_t_listheader.
Sellel sisemisel tabelis on kolm välja:
- Tüüp : 'H' – päis, 'S' – valik, 'A' – tegevus
- Klahv : ainult siis, kui tüüp on "S".
- Info : trükitav tekst
Näide: Lihtne ALV-ruudustiku aruanne
Allolev programm teisendab ülaltoodud funktsioonimoodulid toimivaks aruandeks. See loeb lennugraafiku tabelit SPFLI, loob automaatselt väljakataloogi ja kuvab tulemuse ruudustikus.
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.
Enamiku tööst teevad ära kolm parameetrit. I_STRUCTURE_NAME laseb väljakataloogi tuletada sõnastikust, seega ühtegi veergu käsitsi ei kirjeldata. IS_LAYOUT lülitab sisse triibulised read ja optimeeritud veerulaiused. I_SAVE = 'A' võimaldab salvestada nii kasutajaspetsiifilisi kui ka standardseid kuvamisvariante valmis loendist.
Blokeeri aruanne
See näeb välja nagu lihtne aruanne, kuid sellel aruandel on ainult sortimise ja filtreerimise funktsioonid. Seda aruannet kasutatakse juhul, kui peate väljundis kuvama rohkem kui ühe aruande. Tehniliselt öeldes, kui teil on mitu sisemist tabelit andmetega, mida kuvatakse eraldi plokkidena, siis kasutame ALV plokkide aruannet.
Selle aruande koostamisel kasutatud olulised funktsioonid on järgmised:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Seda funktsioonimoodulit kasutatakse gui vaikeoleku jne määramiseks. Parameetrid on sarnased parameetritega, mida kasutatakse parameetrites reuse_alv_list_display või reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
See funktsioonimoodul lisab andmed plokki.
Olulised parameetrid
1. Eksport:
- is_layout : ploki paigutuse sätted
- it_fieldcat : põllukataloog
- I_tabname : sisemine tabeli nimi kõigi võimalike sündmustega
2. Tabelid:
- t_outtab: sisemine tabel väljundandmetega.
REUSE_ALV_BLOCK_LIST_DISPLAY
See funktsioonimoodul kuvab loendi andmetega, mis on lisatud ülaltoodud funktsioonile.
Parameetrid: kõik parameetrid on valikulised.
Hierarhilised aruanded
Hierarhilist kuva kasutatakse seotud andmete kuvamiseks. Nagu müügitellimus ja kauba üksikasjad. Siin võivad müügitellimuse üksikasjad olla päise andmed, samas kui müügitellimuses olevad kaubad võivad olla kauba andmed
Selleks kasutatav funktsioonimoodul on
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Eksport:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_PAIGUTUS
- It_fieldcat
- It_events
- I_tabname_header : programmi sisemise tabeli nimi, mis sisaldab kõrgeima hierarhiataseme väljundandmeid.
- I_tabname_item : programmi sisetabeli nimi, mis sisaldab hierarhia madalaima taseme väljundandmeid.
- Is_keyinfo : see struktuur sisaldab päise ja üksuste tabeli väljade nimesid, mis seovad kahte tabelit (jagatud võti).
Tabelid
- t_outtab_header: päisetabel väljastatavate andmetega
- t_outtab_item : programmi sisetabeli nimi, mis sisaldab hierarhia madalaima taseme väljundandmeid.
Kõik sisemiste tabelite, struktuuride ja konstantide definitsioonid deklareeritakse tüübikogumis nimega SLIS. Selle sisemise tabeli saab automaatselt täita, kasutades REUSE_ALV_FIELDCATALOG_MERGE'.
Kuva variandid
- Kuva variante kasutatakse alv väljundi vaikeomaduste määramiseks, nagu sortimiskriteeriumid, filtreerimiskriteeriumid, summeerimine ja vahesummad jne
- Kuvavariandid võivad olla kasutajaspetsiifilised ja standardsed (tavalisi variante saavad kasutada kõik kasutajad)
- Salvestatavate kuvavariantide tüüpi kontrollib parameeter i_save, mis edastatakse funktsioonimoodulites reuse_alv_list_display / reuse_alv_grid_display.
- Saate pakkuda valikukuval suvandi, et valida, millist kuvavarianti kasutada
Kuvavariantide valimise/kinnitamisega seotud levinumad funktsioonimoodulid on
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
💡 Näpunäide: Kasutajaspetsiifiliste variantide lubamiseks sisesta I_SAVE = 'U', ainult standardvariantide lubamiseks 'X' ja mõlema puhul 'A'. Tühi väärtus blokeerib salvestamise täielikult.
See on kõik ABAP - ALV programmeerimine!
