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.

  • ???? Põhieesmärk: ABAP-i loendivaatur pakub standardseid loendifunktsioone valmisfunktsioonimoodulite kaudu, seega ei pea neid kunagi uuesti programmeerima.
  • 🗂️ Väljakataloog: REUSE_ALV_FIELDCATALOG_MERGE loob kataloogi, mis kirjeldab iga väljundveergu ja seda saab täita ka käsitsi.
  • 🖥️ Loend ja ruudustik: REUSE_ALV_LIST_DISPLAY prindib klassikalise loendi ja REUSE_ALV_GRID_DISPLAY kuvab samu andmeid ruudustiku juhtelemendis.
  • 🧱 Blokeeri aruanne: INIT, APPEND ja DISPLAY ühendavad mitu sisemist tabelit üheks väljundiks, mis koosneb eraldi plokkidest.
  • 🌳 Hierarhiline aruanne: REUSE_ALV_HIERSEQ_LIST_DISPLAY lingib päisetabeli ja üksuste tabeli IS_KEYINFO jagatud võtme kaudu.
  • 🧰 Tüüp Pool SLIS: Kõik klassikalise ALV poolt kasutatavad struktuurid, tabelitüübid ja konstandid deklareeritakse tüübibasseinis SLIS.
  • 💾 Kuvari variandid: Variant salvestab sortimise, filtreerimise ja summeerimise vaikesätted ning parameeter I_SAVE otsustab, kas see on kasutajaspetsiifiline või standardne.

ALV teatab SAP ABAP

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:

  1. Tüüp : 'H' – päis, 'S' – valik, 'A' – tegevus
  2. Klahv : ainult siis, kui tüüp on "S".
  3. 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

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

KKK

REUSE moodulid kuuluvad klassikalisse, funktsioonipõhisesse ALV-sse. CL_GUI_ALV_GRID on objektorienteeritud juhtelement, mis on manustatud dynpro kohandatud konteinerisse ning pakub muudetavaid lahtreid ja sündmuste käsitlemist meetodite kaudu.

Määrake lisatava veeru väljakataloogis DO_SUM ja edastage ridasid rühmitava veeru jaoks sortimistabel, kus SUBTOT on sisse lülitatud. Täiendavat arvutuskoodi pole vaja.

Edastage vormi nimi funktsioonile I_CALLBACK_USER_COMMAND. Vorm saab funktsioonikoodi ja valitud rea, et programm saaks kirjet lugeda ja avada detailloendi või tehingu.

Jah. ABAP-i arendustööriistade tehisintellekti assistendid loovad SELECT-i, väljakataloogi ja REUSE_ALV_GRID_DISPLAY kutse nõutavate veergude kirjelduse põhjal. Genereeritud SELECT vajab siiski jõudluskontrolli.

Ei. ALV jääb standardseks väljundvõimsuseks SAP GUI-aruanded. Tehisintellekti assistendid lisavad väärtust, tehes kokkuvõtte pikast nimekirjast, tuvastades kõrvalekaldeid ja vastates kuvatavate andmete kohta küsimustele lihtsas keeles.

Võta see postitus kokku järgmiselt: