De vanligaste önskade funktionerna i vilken rapport som helst är "kolumninriktning", sortering, filtrering, delsummor, totalsummor etc. För att implementera dessa från grunden måste det göras mycket kodning. För att undvika att vi kan använda ett koncept som heter ABAP List Viewer (ALV).
I denna handledning lär du dig:
- Enkel rapport
- Blockera rapport
- Hierarkiska rapporter
- Displayvarianter
Var och en av dessa rapporter ger funktionsmoduler som hjälper till att producera önskad produktion utan mycket ansträngning. Låt oss titta på dem i detalj -
Enkel rapport
Viktiga funktionsmoduler i denna rapport är -
- Återanvänd_alv_fieldcatalog_merge
- Återanvänd_alv_list_display
- Återanvänd_alv_events_get
- Återanvänd_alv_grid_display
- Återanvänd_alv_kommentar_skriv
REUSE_ALV_FIELDCATALOG_MERGE
Denna funktionsmodul används för att fylla i en fältkatalog som är nödvändig för att visa data i ALV.
Om utdata är från en enda ordlistatabell och alla kolumner är markerade behöver vi inte exklusivt skapa fältkatalogen. Det räcker för att nämna tabellnamnet som en parameter (I_structure_name) i REUSE_ALV_LIST_DISPLAY. Men i andra fall måste vi skapa det.
Obs: Fältkatalogen kan fyllas manuellt också genom att fylla i alla nödvändiga detaljer i den interna tabellen.
Viktiga parametrar är:
1. Exportera:
- I_program_name: rapport-id
- I_internal_tabname: den interna utgångstabellen
- I_inclname: inkludera eller rapportnamnet där alla dynamiska formulär hanteras.
2. Förändring
- ct_fieldcat: en intern tabell med typen SLIS_T_FIELDCAT_ALV som deklareras i typpoolen SLIS.
REUSE_ALV_LIST_DISPLAY
Detta är den funktionsmodul som skriver ut data.
De viktiga parametrarna är:
1. Exportera:
- I_callback_program: rapport-id
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: rutin där en användare kan ställa in sin egen pf-status eller ändra funktionaliteten för den befintliga pf-statusen.
- I_callback_user_command: rutin där funktionskoderna hanteras.
- I_structure name: namnet på ordlistatabellen
- Is_Layout: struktur för att ställa in rapportens layout
- It_fieldcat: intern tabell med en lista över alla fält och deras attribut som ska skrivas ut (denna tabell kan fyllas i automatiskt av funktionen)
- It_events: intern tabell med en lista över alla möjliga händelser med ALV och deras motsvarande formulärnamn.
2. Tabeller:
- a. t_outtab: intern tabell med data som ska matas ut
REUSE_ALV_EVENTS_GET:
Returnerar tabell över möjliga händelser för en listtyp
1. Importera:
Et_Events: Händelsetabellen returneras med alla möjliga RINGBACK-händelser för den angivna listtypen (kolumn 'NAMN'). För att händelser ska behandlas av återuppringningen måste deras 'FORM' -fält fyllas. Om fältet initialiseras ignoreras händelsen. Posten kan läsas från händelsetabellen, fältet "FORM" fylls och posten kan modifieras med konstanter från typen pool SLIS.
2. Exportera:
I_list_type: 0 = enkel lista REUSE_ALV_LIST_DISPLAY
1 = hierarkisk-sekventiell lista REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = enkel blocklista REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarkisk-sekventiell blocklista REUSE_ALV_BL_
REUSE_ALV_GRID_DISPLAY
En ny funktion från ABAP4.6-versionen för att visa resultaten i rutnät snarare än en förhandsvisning.
Parametrar: samma som reuse_alv_list_display
Obs! Rutnät kan inte hantera stora volymer. Funktioner som sortering, rullning nedåt förbrukar mycket resurser / tid om datamängden som ska visas är hög. Det finns ingen tydlig definition så att om datamängden är X går du till lista eller rutnät men utvecklaren måste ta ett samtal baserat på sin erfarenhet. Om du inte är säker är listan det bättre alternativet
REUSE_ALV_COMMENTARY_WRITE
Detta används i toppen av sidan för att skriva ut rubrikerna och andra kommentarer för listan.
Viktiga parametrar
- It_list_commentary: Intern tabell med rubrikerna av typen slis_t_listheader.
Denna interna tabell har tre fält:
- Typ: 'H' - rubrik, 'S' - val, 'A' - åtgärd
- Nyckel: endast när typ är 'S'.
- Info: texten som ska skrivas ut
Blockera rapport
Det här ser ut som en enkel rapport men den här rapporten har endast funktionerna att sortera och filtrera. Denna rapport används om du måste visa mer än en rapport om utdata. Tekniskt sett om du har flera interna tabeller med data som ska visas som separata block så går vi för blockrapport om ALV.
De viktiga funktionerna som används för att skapa denna rapport är:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Denna funktionsmodul används för att ställa in standard gui-status etc. Parametrarna liknar den som används i reuse_alv_list_display eller reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Denna funktionsmodul lägger till data i blocket.
Viktiga parametrar
1.Export:
- is_layout: layoutinställningar för block
- it_fieldcat: fältkatalog
- I_tabname: internt tabellnamn med alla möjliga händelser
2. tabeller:
- t_outtab: intern tabell med utdata.
REUSE_ALV_BLOCK_LIST_DISPLAY
Denna funktionsmodul visar listan med data som läggs till av ovanstående funktion.
Parametrar: Alla parametrar är valfria.
Hierarkiska rapporter
Hierarkisk visning används för att visa relaterade data. Gilla försäljningsorder och artikelinformation. Här kan försäljningsorderinformation vara rubrikdata medan artiklarna i försäljningsorder kan vara artikeldata
Funktionsmodulen som används för detta är
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Exportera:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- Det_events
- I_tabname_header: Namnet på den interna tabellen i programmet som innehåller utdata för den högsta hierarkinivån.
- I_tabname_item: Namnet på den interna tabellen i programmet som innehåller utdata för den lägsta hierarkinivån.
- Is_keyinfo: Denna struktur innehåller rubrik- och artikeltabellfältnamnen som länkar de två tabellerna (delad nyckel).
Tabeller
- t_outtab_header: Huvudtabell med data som ska matas ut
- t_outtab_item: Namnet på den interna tabellen i programmet som innehåller utdata för den lägsta hierarkinivån.
Alla definitioner av interna tabeller, strukturer och konstanter deklareras i en typpool som heter SLIS. Denna interna tabell kan fyllas i automatiskt med REUSE_ALV_FIELDCATALOG_MERGE '.
Displayvarianter
- Displayvarianter används för att ställa in standardegenskaperna för en alv-utdata som sorteringskriterier, filtreringskriterier, sammanlagning och subtotalering etc.
- Displayvarianter kan vara användarspecifika och standard (standardvarianter kan användas av alla användare)
- Typ av displayvarianter som kan sparas styrs av parametern i_save som skickas i funktionsmoduler reuse_alv_list_display / reuse_alv_grid_display
- Du kan välja ett alternativ på urvalsskärmen för att välja vilken visningsvariant som ska användas
De vanliga funktionsmodulerna relaterade till att välja / validera visningsvarianter är
- Återanvänd_alv_variant_default_get
- Återanvänd_alv_variant_f4
- Återanvänd_alv_variant_existens
Allt detta till ABAP-ALV-programmering!