De vanligste ønskede funksjonene i en hvilken som helst rapport er "kolonnejustering", sortering, filtrering, delsummer, totaler etc. For å implementere disse fra bunnen av, må det legges mye koding. For å unngå at vi kan bruke et konsept som heter ABAP List Viewer (ALV).
I denne opplæringen lærer du:
- Enkel rapport
- Blokker rapporten
- Hierarkiske rapporter
- Vis varianter
Hver av disse rapportene gir funksjonsmoduler som hjelper til med å produsere ønsket produksjon uten mye anstrengelse. La oss se på dem i detalj -
Enkel rapport
Viktige funksjonsmoduler i denne rapporten er -
- Gjenbruk_alv_fieldcatalog_merge
- Gjenbruk_alv_liste_display
- 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 viktig for å vise dataene i ALV.
Hvis utdataene kommer fra en enkelt ordbokstabell 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 fylles ut manuelt også ved å fylle ut alle nødvendige detaljer i den interne tabellen.
Viktige parametere er:
1. Eksporter:
- I_program_name: rapport-ID
- I_internal_tabname: den interne utgangstabellen
- I_inclname: inkluderer eller rapportnavnet der alle dynamiske skjemaer håndteres.
2. Endring
- ct_fieldcat: en intern tabell med typen SLIS_T_FIELDCAT_ALV som er deklarert i typen pool SLIS.
REUSE_ALV_LIST_DISPLAY
Dette er funksjonsmodulen som skriver ut dataene.
De viktige parametrene er:
1. Eksport:
- I_callback_program: rapport-ID
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: rutine der en bruker kan angi sin egen pf-status eller endre funksjonaliteten til den eksisterende pf-statusen.
- I_callback_user_command: rutine der funksjonskodene håndteres.
- I_strukturnavn: navn på ordlistetabellen
- Is_Layout: struktur for å angi utformingen av rapporten
- It_fieldcat: intern tabell med listen 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 tilhørende skjemanavn.
2. Tabeller:
- en. t_outtab: intern tabell med dataene som skal sendes ut
REUSE_ALV_EVENTS_GET:
Returnerer tabellen over mulige hendelser for en listetype
1. Import:
Et_Events: Hendelsestabellen returneres med alle mulige CALLBACK-hendelser for den angitte listetypen (kolonne 'NAVN'). 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' er fylt ut og oppføringen endret ved hjelp av konstanter fra typen pool SLIS.
2. Eksporter:
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 blokkeringsliste REUSE_ALV_BL_
REUSE_ALV_GRID_DISPLAY
En ny funksjon fra ABAP4.6-versjonen, 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 volumer. Funksjoner som sortering, rulling ned bruker mye ressurser / tid hvis datamengden som skal vises er høy. Det er ingen klar definisjon slik at hvis datamengden er X, går du til listen eller rutenettet, men utvikleren må ringe basert på sin erfaring. Hvis du ikke er sikker, er listen det bedre alternativet
REUSE_ALV_COMMENTARY_WRITE
Dette brukes i toppen av siden for å skrive ut overskriftene og andre kommentarer til listen.
Viktige parametere
- It_list_commentary: Intern tabell med overskriftene 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
Blokker rapporten
Dette ser ut som en enkel rapport, men denne rapporten har kun funksjonene i sortering og filtrering. Denne rapporten brukes hvis du må vise mer enn én rapport om utdataene. Teknisk sett hvis du har flere interne tabeller med data som skal vises som separate blokker, så går vi for blokkrapport om ALV.
De viktige funksjonene som brukes til å 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 i blokken.
Viktige parametere 1.
Eksport:
- is_layout: layoutinnstillinger for blokkering
- 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 lagt til av ovennevnte funksjon.
Parametere: Alle parametrene er valgfrie.
Hierarkiske rapporter
Hierarkisk visning brukes til å vise data som er relatert. Som salgsordre og varedetaljer. Her kan salgsordredetaljer være overskriftsdataene, mens varene i salgsordren kan være varedataene
. Funksjonsmodulen som brukes til dette er
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Eksporter:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- Det_events
- I_tabname_header: Navnet på den interne tabellen i programmet som inneholder utdataene fra det høyeste hierarkinivået.
- I_tabname_item: Navnet på den interne tabellen i programmet som inneholder utdataene fra det laveste hierarkinivået.
- Is_keyinfo: Denne strukturen inneholder feltnavnet på topptekst og varetabell som knytter de to tabellene (delt nøkkel).
Tabeller
- t_outtab_header: Overskriftstabell med data som skal sendes ut
- t_outtab_item: Navnet på den interne tabellen i programmet som inneholder utdataene fra det laveste hierarkinivået.
Alle definisjonene 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
- Skjermvarianter brukes til å angi standardegenskapene til en alv-utgang som sorteringskriterier, filtreringskriterier, total og subtotalering osv.
- Displayvarianter kan være brukerspesifikke og standard (standardvarianter kan brukes av alle brukere)
- Type displayvarianter som kan lagres styres av parameteren i_save som sendes i funksjonsmoduler reuse_alv_list_display / reuse_alv_grid_display
- Du kan gi et alternativ på valgskjermen for å velge hvilken visningsvariant som skal brukes
De vanlige funksjonsmodulene relatert til valg / validering av skjermvarianter er
- Gjenbruk_alv_variant_default_get
- Gjenbruk_alv_variant_f4
- Gjenbruk_alv_variant_eksistens
Alt dette til ABAP-ALV-programmering!