ALV Rapporterar in SAP Handledning – ABAP List Viewer
De vanliga önskvärda funktionerna i en rapport är "kolumnjustering", sortering, filtrering, delsummor, summor etc. För att implementera dessa från grunden måste en hel del kodningsansträngning läggas ner. För att undvika det kan vi använda ett koncept som kallas ABAP List Viewer (ALV).
Var och en av dessa rapporter ger funktionsmoduler som hjälper till att producera önskad produktion utan större ansträngning. Låt oss titta på dem i detalj -
Enkel rapport
Viktiga funktionsmoduler i dessa rapport är -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Återanvänd_alv_grid_display
- Reuse_alv_commentary_write
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 kommer från en enda ordbokstabell och alla kolumner är valda, behöver vi inte enbart skapa fältkatalogen. Det räcker med 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ältkatalog kan fyllas i manuellt också genom att fylla i alla nödvändiga detaljer i den interna tabellen
Viktiga parametrar i är:
1. Exportera:
- I_program_name : rapport-id
- I_internal_tabname : den interna utdatatabellen
- I_inclname : inkludera eller rapportnamnet där alla dynamiska formulär hanteras.
2. Förändring
- ct_fieldcat : an inre bord med typen SLIS_T_FIELDCAT_ALV som deklareras i typpoolen SLIS.
REUSE_ALV_LIST_DISPLAY
Detta är funktionsmodulen 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å ordbokstabellen
- Is_Layout : struktur för att ställa in layouten för rapporten
- It_fieldcat : intern tabell med listan ö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 för 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 CALLBACK-händelser för den angivna listtypen (kolumn 'NAME'). För att händelser ska behandlas av återuppringningen måste deras "FORM"-fält fyllas i. Om fältet initieras ignoreras händelsen. Posten kan läsas från händelsetabellen, fältet 'FORM' fylls i och posten kan ändras med hjälp av konstanter från typpoolen SLIS.
2. Exportera:
I_list_type: 0 = enkel lista REUSE_ALV_LIST_DISPLAY
1 = hierarkisk-sekventiell lista REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = enkel blockeringslista REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarkisk-sekventiell blockeringslista REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
En ny funktion från ABAP4.6 version, för att visa resultaten i rutnät snarare än en förhandsvisning.
Parametrar: samma som reuse_alv_list_display
Obs: Grid klarar inte höga volymer. Funktioner som sortering, rullning nedåt tar mycket resurser/tid om mängden data som ska visas är hög. Det finns ingen tydlig definition så att om mängden data är X gå till lista eller rutnät men utvecklaren måste ta ett samtal baserat på sin erfarenhet. Om du är osäker är listan det bättre alternativet
REUSE_ALV_COMMENTARY_WRITE
Detta används i Top-of-page-händelsen för att skriva ut rubriker och andra kommentarer för listan.
Viktiga parametrar
- It_list_commentary : Intern tabell med rubrikerna av typen slis_t_listheader.
Den här interna tabellen har tre fält:
- Typ : 'H' – rubrik, 'S' – urval, 'A' – åtgärd
- Nyckel: endast när typ är 'S'.
- Info: texten som ska skrivas ut
Blockera rapport
Detta ser ut som en enkel rapport, men den här rapporten har bara funktionerna sortering och filtrering. Den här rapporten används om du måste visa mer än en rapport på resultatet. Tekniskt sett om du har flera interna tabeller med data som ska visas som separata block så går vi till blockrapport av 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 till blocket.
Viktiga parametrar
1.Exportera:
- 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 data som är relaterade. Som försäljningsorder och artikeldetaljer. Här kan försäljningsorderdetaljer vara rubrikdata medan dessa artiklar i försäljningsordern 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_händelser
- I_tabname_header : Namnet på den interna tabellen i programmet som innehåller utdata från den högsta hierarkinivån.
- I_tabname_item : Namnet på den interna tabellen i programmet som innehåller utdata från den lägsta hierarkinivån.
- Is_keyinfo : Den här strukturen innehåller rubrik- och objekttabellfältnamnen som länkar de två tabellerna (delad nyckel).
Bord
- t_outtab_header : Rubriktabell med data som ska matas ut
- t_outtab_item : Namnet på den interna tabellen i programmet som innehåller utdata från den lägsta hierarkinivån.
Alla definitioner av interna tabeller, strukturer och konstanter deklareras i en typpool som kallas SLIS. Denna interna tabell kan fyllas i automatiskt genom att använda REUSE_ALV_FIELDCATALOG_MERGE'.
Visa varianter
- Visningsvarianter används för att ställa in standardegenskaperna för en alv-utdata som sorteringskriterier, filtreringskriterier, summering och subtotalering etc.
- Visningsvarianter kan vara användarspecifika och standard (standardvarianter kan användas av alla användare)
- Typ av visningsvarianter som kan sparas styrs av parametern i_save som skickas i funktionsmodulerna reuse_alv_list_display / reuse_alv_grid_display
- Du kan ge ett alternativ på urvalsskärmen för att välja vilken visningsvariant som ska användas
De vanliga funktionsmodulerna relaterade till val/validering av displayvarianter är
- Reuse_alv_variant_default_get
- Återanvänd_alv_variant_f4
- Reuse_alv_variant_existence
Det är allt ABAP – ALV-programmering!