ALV Rapporterer inn SAP Opplæring – ABAP List Viewer
⚡ Smart oppsummering
ALV Rapporterer inn SAP, produsert av ABAP List Viewer, leverer kolonnejustering, sortering, filtrering, totaler og delsummer uten tilpasset koding. Denne siden forklarer de enkle, blokkerte og hierarkiske listetypene, deres GJENBRUK-funksjonsmoduler og visningsvarianter.

Hva er ALV i SAP ABAP?
De vanlige ønskede funksjonene i enhver rapport er «kolonnejustering», sortering, filtrering, delsummer, totaler osv. For å implementere disse fra bunnen av kreves det mye kodearbeid. For å unngå dette kan vi bruke et konsept som kalles ABAP List Viewer (ALV).
Hver av disse rapportene gir funksjonsmoduler som hjelper til med å produsere ønsket utgang uten mye anstrengelse. La oss se på dem i detalj -
Den klassiske ALV-en tilbyr tre listetyper, og hver av dem har sitt eget sett med REUSE-funksjonsmoduler:
- Enkel rapport: én intern tabell vist som en liste eller et rutenett.
- Blokkrapport: flere interne tabeller vist under hverandre som separate blokker.
- Hierarkisk rapport: en overskriftstabell og en elementtabell koblet sammen av en delt nøkkel.
Enkel rapport
Viktige funksjonsmoduler i disse rapporterer er -
- Gjenbruk_alv_feltkatalog_sammenslåing
- Gjenbruk_alv_liste_visning
- Gjenbruk_alv_events_get
- Gjenbruk_alv_grid_display
- Gjenbruk_alv_kommentar_skriv
REUSE_ALV_FIELDCATALOG_MERGE
Denne funksjonsmodulen brukes til å fylle ut en feltkatalog som er avgjørende for å vise dataene i ALV.
Hvis utdataene er fra en enkelt ordboktabell og alle kolonnene er valgt, trenger vi ikke utelukkende å lage feltkatalogen. Det er nok til å nevne tabellnavnet som en parameter (I_structure_name) i REUSE_ALV_LIST_DISPLAY. Men i andre tilfeller må vi lage det.
Merk: Feltkatalog kan også fylles ut manuelt ved å fylle opp alle nødvendige detaljer i den interne tabellen
Viktige parametere i er:
1. Eksport:
- I_program_name : rapport-ID
- I_internal_tabname : den interne utdatatabellen
- I_inclname : inkluderer eller rapportnavnet der alle de dynamiske skjemaene håndteres.
2. Endre
- ct_fieldcat : an innvendig bord med typen SLIS_T_FIELDCAT_ALV som er deklarert i typepoolen SLIS.
REUSE_ALV_LIST_DISPLAY
Dette er funksjonsmodulen som skriver ut dataene.
De viktige parameterne er:
1. Eksport:
- I_callback_program : rapport-id
- I_bypassing_buffer : 'X'
- I_buffer_active : ' '
- I_callback_pf_status_set : rutine hvor en bruker kan sette sin egen pf-status eller endre funksjonaliteten til den eksisterende pf-statusen.
- I_callback_user_command : rutine hvor funksjonskodene håndteres.
- I_structure name : navnet på ordboktabellen
- Is_Layout : struktur for å angi oppsettet for rapporten
- It_fieldcat : intern tabell med liste over alle felt og deres attributter som skal skrives ut (denne tabellen kan fylles ut automatisk av funksjonen)
- It_events : intern tabell med en liste over alle mulige hendelser av ALV og deres tilsvarende skjemanavn.
2. Tabeller:
- en. t_outtab : intern tabell med dataene som skal sendes ut
GJENBRUK_ALV_HENDELSER_FÅ
Returnerer tabell over mulige hendelser for en listetype
1. Importer:
Et_Events :Hendelsestabellen returneres med alle mulige CALLBACK-hendelser for den angitte listetypen (kolonne 'NAME'). For at hendelser skal behandles av tilbakeringingen, må deres 'FORM'-felt fylles ut. Hvis feltet initialiseres, ignoreres hendelsen. Oppføringen kan leses fra hendelsestabellen, feltet 'FORM' fylles ut og oppføringen kan endres ved hjelp av konstanter fra type pool SLIS.
2. Eksport:
I_list_type: 0 = enkel liste REUSE_ALV_LIST_DISPLAY
1 = hierarkisk-sekvensiell liste REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = enkel blokkeringsliste REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarkisk-sekvensiell blokkliste REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
En ny funksjon fra ABAP4.6 versjon, for å vise resultatene i rutenett i stedet for en forhåndsvisning.
Parametere: samme som reuse_alv_list_display
Merk: Rutenett kan ikke håndtere store mengder. Funksjoner som sortering og nedoverrulling bruker mye ressurser/tid hvis datamengden som skal vises er stor. Det finnes ingen klar definisjon av at hvis datamengden er X, bør man velge liste eller rutenett, men utvikleren må ta en avgjørelse basert på sin erfaring. Hvis man er usikker, er liste det beste alternativet.
REUSE_ALV_COMMENTARY_WRITE
Dette brukes i Top-of-page-hendelsen for å skrive ut overskrifter og andre kommentarer for listen.
Viktige parametere
- It_list_commentary : Intern tabell med overskrifter av typen slis_t_listheader.
Denne interne tabellen har tre felt:
- Typ : 'H' – overskrift, 'S' – valg, 'A' – handling
- Nøkkel : bare når typen er 'S'.
- Info: teksten som skal skrives ut
Eksempel: En enkel ALV-rutenettrapport
Programmet nedenfor gjør om funksjonsmodulene ovenfor til en arbeidsrapport. Det leser flyplantabellen SPFLI, bygger feltkatalogen automatisk og viser resultatet i et rutenett.
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.
Tre parametere utfører mesteparten av arbeidet. I_STRUCTURE_NAME lar feltkatalogen utledes fra ordboken, slik at ingen kolonne beskrives manuelt. IS_LAYOUT slår på stripete rader og optimaliserte kolonnebredder. I_SAVE = 'A' lar både brukerspesifikke og standard visningsvarianter lagres fra den ferdige listen.
Blokker rapport
Dette ser ut som en enkel rapport, men denne rapporten har bare funksjonene sortering og filtrering. Denne rapporten brukes hvis du må vise mer enn én rapport på utdataene. Teknisk sett hvis du har flere interne tabeller med data som skal vises som separate blokker, så går vi for blokkrapport av ALV.
De viktige funksjonene som brukes for å lage denne rapporten er:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Denne funksjonsmodulen brukes til å angi standard gui-status osv. Parametrene ligner på den som brukes i reuse_alv_list_display eller reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Denne funksjonsmodulen legger til dataene til blokken.
Viktige parametere
1. Eksport :
- is_layout : layoutinnstillinger for blokk
- it_fieldcat : feltkatalog
- I_tabname : internt tabellnavn med alle mulige hendelser
2. Tabeller:
- t_outtab : intern tabell med utdata.
REUSE_ALV_BLOCK_LIST_DISPLAY
Denne funksjonsmodulen viser listen med data vedlagt av funksjonen ovenfor.
Parametere: Alle parametere er valgfrie.
Hierarkiske rapporter
Hierarkisk visning brukes for å vise data som er relatert. Som salgsordre og varedetaljer. Her kan salgsordredetaljer være overskriftsdata, mens varene i salgsordren kan være varedata
Funksjonsmodulen som brukes til dette er
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Eksport:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- Det_hendelser
- I_tabname_header : Navn på den interne tabellen i programmet som inneholder utdataene for det høyeste hierarkinivået.
- I_tabname_item : Navn på den interne tabellen i programmet som inneholder utdataene for det laveste hierarkinivået.
- Is_keyinfo : Denne strukturen inneholder overskrifts- og elementtabellfeltnavnene som kobler sammen de to tabellene (delt nøkkel).
tabeller
- t_outtab_header : Overskriftstabell med data som skal sendes ut
- t_outtab_item : Navn på den interne tabellen i programmet som inneholder utdataene for det laveste hierarkinivået.
Alle definisjoner av interne tabeller, strukturer og konstanter er deklarert i en type-pool kalt SLIS. Denne interne tabellen kan fylles ut automatisk ved å bruke REUSE_ALV_FIELDCATALOG_MERGE'.
Vis varianter
- Visningsvarianter brukes til å angi standardegenskapene til en alv-utgang som sorteringskriterier, filtreringskriterier, summering og subtotering osv.
- Visningsvarianter kan være brukerspesifikke og standard (standardvarianter kan brukes av alle brukere)
- Hvilke visningsvarianter som kan lagres styres av parameteren i_save som sendes i funksjonsmodulene reuse_alv_list_display / reuse_alv_grid_display
- Du kan gi et alternativ på valgskjermen for å velge hvilken skjermvariant som skal brukes
De vanlige funksjonsmodulene knyttet til valg / validering av visningsvarianter er
- Gjenbruk_alv_variant_default_get
- Gjenbruk_alv_variant_f4
- Gjenbruk_alv_variant_eksistens
💡 Tips: Send I_SAVE = 'U' for å kun tillate brukerspesifikke varianter, 'X' for kun standardvarianter og 'A' for begge. En tom verdi blokkerer lagring fullstendig.
Det er alt til ABAP – ALV-programmering!
