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.

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ää:
- Typ : 'H' – otsikko, 'S' – valinta, 'A' – toiminta
- Näppäin : vain kun tyyppi on "S".
- 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
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- 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!
