ALV raportoi sisään SAP Opetusohjelma – ABAP List Viewer

⚡ Älykäs yhteenveto

ALV raportoi sisään SAPABAP List Viewerin tuottamat luettelot tarjoavat sarakkeiden tasauksen, lajittelun, suodatuksen, summat ja välisummat ilman mukautettua koodausta. Tällä sivulla selitetään yksinkertaiset, lohko- ja hierarkkiset luettelotyypit, niiden REUSE-funktiomoduulit ja näyttömuunnelmat.

  • 📋 Ydintarkoitus: ABAP List Viewer tarjoaa vakiolistaominaisuudet valmiiden funktiomoduulien kautta, joten niitä ei tarvitse koskaan ohjelmoida uudelleen.
  • 🗂️ Kenttäluettelo: REUSE_ALV_FIELDCATALOG_MERGE muodostaa luettelon, joka kuvaa jokaisen tulostesarakkeen, ja se voidaan täyttää myös manuaalisesti.
  • 🖥️ Lista ja ruudukko: REUSE_ALV_LIST_DISPLAY tulostaa klassisen listan ja REUSE_ALV_GRID_DISPLAY näyttää samat tiedot ruudukko-ohjauksessa.
  • 🧱 Estä raportti: INIT, APPEND ja DISPLAY yhdistävät useita sisäisiä taulukoita yhdeksi erillisistä lohkoista koostuvaksi tulosteeksi.
  • 🌳 Hierarkkinen raportti: REUSE_ALV_HIERSEQ_LIST_DISPLAY linkittää otsikkotaulukon ja alkiotaulukon IS_KEYINFO-taulukon jaetun avaimen kautta.
  • 🧰 Tyyppi Pool SLIS: Jokainen klassisen ALV:n käyttämä rakenne, taulukkotyyppi ja vakio on deklaroitu SLIS-tyyppipoolissa.
  • 💾 Näyttövaihtoehdot: Variantti tallentaa lajittelun, suodatuksen ja summauksen oletusarvot, ja I_SAVE-parametri päättää, onko se käyttäjäkohtainen vai vakio.

ALV raportoi sisään SAP ABAP

Mitä ALV tarkoittaa? SAP ABAP?

Yleisimpiä raporttien ominaisuuksia ovat sarakkeiden tasaus, lajittelu, suodatus, välisummat, kokonaissummat jne. Näiden toteuttaminen alusta alkaen vaatii paljon koodaustyötä. Tämän välttämiseksi voimme käyttää ABAP List Viewer (ALV) -nimistä konseptia.

Jokainen näistä raporteista tarjoaa toimintomoduulit jotka auttavat tuottamaan halutun tuloksen ilman paljon vaivaa. Katsotaanpa niitä yksityiskohtaisesti -

Klassinen ALV tarjoaa kolme listatyyppiä, ja jokaisella on oma REUSE-funktiomoduuliensa joukko:

  • Yksinkertainen raportti: yksi sisäinen taulukko, joka näkyy luettelona tai ruudukkona.
  • Estä raportti: useita sisäisiä taulukoita, jotka on esitetty peräkkäin erillisinä lohkoina.
  • Hierarkkinen raportti: otsikkotaulukko ja kohdetaulukko, jotka on linkitetty jaetulla avaimella.

Yksinkertainen raportti

Näissä tärkeitä toimintomoduuleja raportti ovat -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

Tätä toimintomoduulia käytetään kenttäluettelon täyttämiseen, mikä on välttämätöntä tietojen näyttämiseksi ALV:ssä.

Jos lähtötiedot ovat yhdestä sanakirjataulukosta ja kaikki sarakkeet on valittu, meidän ei tarvitse luoda yksinomaan kenttäluetteloa. Riittää, kun mainitaan taulukon nimi parametrina (I_structure_name) REUSE_ALV_LIST_DISPLAY -luettelossa. Mutta muissa tapauksissa meidän on luotava se.

Huomautus: Kenttäluettelo voidaan täyttää myös manuaalisesti täyttämällä kaikki tarvittavat tiedot sisäiseen taulukkoon

Tärkeitä parametreja ovat:

1. Vienti:

  • I_ohjelman_nimi: raportin tunnus
  • I_internal_tabname : sisäinen tulostaulukko
  • I_inclname : sisällytä tai raportin nimi, jossa kaikkia dynaamisia lomakkeita käsitellään.

2. Muuttaminen

  • ct_fieldcat : an sisäinen pöytä tyypin SLIS_T_FIELDCAT_ALV kanssa, joka on ilmoitettu tyyppipoolissa SLIS.

REUSE_ALV_LIST_DISPLAY

Tämä on toimintomoduuli, joka tulostaa tiedot.

Tärkeitä parametreja ovat:

1. Vienti:

  • I_callback_program : raportin tunnus
  • I_bypassing_buffer : 'X'
  • I_buffer_active: ''
  • I_callback_pf_status_set: rutiini, jossa käyttäjä voi asettaa oman pf-tilan tai muuttaa olemassa olevan pf-tilan toimintoja.
  • I_callback_user_command : rutiini, jossa toimintokoodeja käsitellään.
  • I_rakenteen nimi: sanakirjataulukon nimi
  • Is_Layout : rakenne, jolla määritetään raportin asettelu
  • It_fieldcat: sisäinen taulukko, jossa on luettelo kaikista tulostettavista kentistä ja niiden määritteistä (funktio voi täyttää tämän taulukon automaattisesti)
  • It_events: sisäinen taulukko, jossa on luettelo kaikista mahdollisista ALV:n tapahtumista ja niitä vastaavista lomakenimistä.

2. Taulukot:

  • a. t_outtab: sisäinen taulukko, jossa on tulostettavat tiedot

REUSE_ALV_EVENTS_GET

Palauttaa taulukon mahdollisista tapahtumista aa-luettelotyypille

1. Tuo:

Et_Events:Tapahtumataulukko palautetaan kaikkien mahdollisten CALLBACK-tapahtumien kanssa määritetylle luettelotyypille (sarake 'NAME'). Jotta takaisinsoitto voi käsitellä tapahtumia, niiden FORM-kenttä on täytettävä. Jos kenttä alustetaan, tapahtuma ohitetaan. Merkintä voidaan lukea tapahtumataulukosta, kenttä 'FORM' on täytetty ja merkintää muokata vakioilla tyyppipoolista SLIS.

2. Vienti:

I_list_type: 0 = yksinkertainen luettelo REUSE_ALV_LIST_DISPLAY

1 = hierarkkinen-peräkkäinen lista REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = yksinkertainen estolista REUSE_ALV_BLOCK_LIST_APPEND

3 = hierarkkinen-peräkkäinen lohkolista REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

Uusi toiminto ABAP4.6-versiosta, joka näyttää tulokset ruudukossa esikatselun sijaan.

Parametrit: sama kuin reuse_alv_list_display

Huomautus: Ruudukko ei pysty käsittelemään suuria tietomääriä. Funktiot, kuten lajittelu ja alaspäin vieritys, kuluttavat paljon resursseja / aikaa, jos näytettävän datan määrä on suuri. Ei ole olemassa yksiselitteistä määritelmää sille, että jos datan määrä on X, tulisi käyttää listaa tai ruudukkoa, vaan kehittäjän on tehtävä päätös kokemuksensa perusteella. Jos et ole varma, lista on parempi vaihtoehto.

REUSE_ALV_COMMENTARY_WRITE

Tätä käytetään Top-of-page -tapahtumassa luettelon otsikoiden ja muiden kommenttien tulostamiseen.

Tärkeitä parametreja

  • It_list_commentary : Sisäinen taulukko, jonka otsikot ovat tyyppiä slis_t_listheader.

Tässä sisäisessä taulukossa on kolme kenttää:

  1. Typ : 'H' – otsikko, 'S' – valinta, 'A' – toiminta
  2. Näppäin : vain kun tyyppi on "S".
  3. Info: tulostettava teksti

Esimerkki: Yksinkertainen ALV-ruudukkoraportti

Alla oleva ohjelma muuntaa yllä olevat funktiomoduulit toimivaksi raportiksi. Se lukee lentoaikataulutaulukon SPFLI, rakentaa kenttäluettelon automaattisesti ja näyttää tuloksen ruudukossa.

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.

Kolme parametria hoitaa suurimman osan työstä. I_STRUCTURE_NAME mahdollistaa kenttäluettelon johtamisen sanakirjasta, joten sarakkeita ei kuvata käsin. IS_LAYOUT ottaa käyttöön raidoitetut rivit ja optimoidut sarakeleveydet. I_SAVE = 'A' mahdollistaa sekä käyttäjäkohtaisten että vakionäyttövarianttien tallentamisen valmiista luettelosta.

Estä raportti

Tämä näyttää yksinkertaiselta raportilta, mutta tässä raportissa on vain lajittelu- ja suodatusominaisuudet. Tätä raporttia käytetään, jos tulosteessa on näytettävä useampi kuin yksi raportti. Teknisesti ottaen, jos sinulla on useita sisäisiä taulukoita, joissa tiedot näytetään erillisinä lohkoina, menemme ALV:n lohkoraporttiin.

Tämän raportin luomisessa käytetyt tärkeät toiminnot ovat:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

Tätä toimintomoduulia käytetään asettamaan oletusarvoinen gui-tila jne. Parametrit ovat samanlaisia ​​kuin parametreissa reuse_alv_list_display tai reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND

Tämä toimintomoduuli lisää tiedot lohkoon.

Tärkeitä parametreja

1. Vienti:

  • is_layout: lohkon asetteluasetukset
  • it_fieldcat: kenttäluettelo
  • I_tabname: sisäinen taulukon nimi, joka sisältää kaikki mahdolliset tapahtumat

2. Taulukot:

  • t_outtab: sisäinen taulukko lähtötiedoilla.

REUSE_ALV_BLOCK_LIST_DISPLAY

Tämä toimintomoduuli näyttää luettelon yllä olevan toiminnon liitteistä tiedoista.

Parametrit: Kaikki parametrit ovat valinnaisia.

Hierarkkiset raportit

Hierarkkista näyttöä käytetään toisiinsa liittyvien tietojen näyttämiseen. Kuten myyntitilaus ja tuotetiedot. Tässä myyntitilauksen tiedot voivat olla otsikkotietoja, kun taas myyntitilauksen tuotteet voivat olla nimiketietoja

Tähän käytetty toimintomoduuli on

REUSE_ALV_HIERSEQ_LIST_DISPLAY

Viedä:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_ASETTELU
  • It_fieldcat
  • It_events
  • I_tabname_header : Ohjelman sisäisen taulukon nimi, joka sisältää korkeimman hierarkiatason lähtötiedot.
  • I_tabname_item : Ohjelman sisäisen taulukon nimi, joka sisältää alimman hierarkiatason lähtötiedot.
  • Is_keyinfo : Tämä rakenne sisältää otsikko- ja nimiketaulukkokenttien nimet, jotka yhdistävät kaksi taulukkoa (jaettu avain).

taulukot

  • t_outtab_header: Otsikkotaulukko, jossa on tulostettavat tiedot
  • t_outtab_item : Ohjelman sisäisen taulukon nimi, joka sisältää alimman hierarkiatason lähtötiedot.

Kaikki sisäisten taulukoiden, rakenteiden ja vakioiden määritelmät ilmoitetaan tyyppipoolissa nimeltä SLIS. Tämä sisäinen taulukko voidaan täyttää automaattisesti käyttämällä REUSE_ALV_FIELDCATALOG_MERGE'.

Näyttövaihtoehdot

  • Näyttömuunnelmia käytetään alv-tulosteen oletusominaisuuksien asettamiseen, kuten lajittelukriteerit, suodatusehdot, summaus ja välisummaus jne.
  • Näyttöversiot voivat olla käyttäjäkohtaisia ​​ja vakiomuotoisia (vakiovariaatioita voivat käyttää kuka tahansa käyttäjä)
  • Tallennettavien näyttövarianttien tyyppi määräytyy i_save-parametrin avulla, joka annetaan funktiomoduuleissa reuse_alv_list_display / reuse_alv_grid_display.
  • Voit tarjota valintanäytössä vaihtoehdon valitaksesi käytettävän näyttövaihtoehdon

Yleisimmät näyttövaihtoehtojen valintaan/vahvistukseen liittyvät toimintomoduulit ovat

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

💡 Vinkki: Anna I_SAVE = 'U' salliaksesi vain käyttäjäkohtaiset variantit, 'X' vain vakiovarianteille ja 'A' molemmille. Tyhjä arvo estää tallennuksen kokonaan.

Siinä kaikki ABAP – ALV-ohjelmointi!

UKK

REUSE-moduulit kuuluvat klassiseen, funktiopohjaiseen ALV:hen. CL_GUI_ALV_GRID on oliopohjainen ohjausobjekti, joka on upotettu mukautettuun säilöön dynprossa ja tarjoaa muokattavia soluja ja tapahtumien käsittelyä metodien avulla.

Aseta kenttäluettelossa DO_SUM lisättävälle sarakkeelle ja välitä lajittelutaulukko, jossa SUBTOT on käytössä rivit ryhmittelevälle sarakkeelle. Ylimääräistä laskentakoodia ei tarvita.

Välitä lomakkeen nimi I_CALLBACK_USER_COMMAND-funktiolle. Lomake vastaanottaa funktion koodin ja valitun rivin, jotta ohjelma voi lukea tietueen ja avata tietoluettelon tai tapahtuman.

Kyllä. ABAP-kehitystyökalujen tekoälyavustajat tuottavat SELECT-kutsufunktion, kenttäluettelon ja REUSE_ALV_GRID_DISPLAY-kutsun vaadittujen sarakkeiden kuvauksesta. Luotu SELECT tarvitsee vielä suorituskykytarkistuksen.

Ei. ALV on edelleen vakiotuotanto SAP Käyttöliittymäraportit. Tekoälyavustajat tuovat lisäarvoa tiivistämällä pitkän listan, havaitsemalla poikkeamat ja vastaamalla näytettävää dataa koskeviin kysymyksiin selkokielellä.

Tiivistä tämä viesti seuraavasti: