ALV meldt zich in SAP Tutorial – ABAP Lijstviewer
De gemeenschappelijke gewenste kenmerken van elk rapport zijn “kolomuitlijning”, sorteren, filteren, subtotalen, totalen enz. Om deze helemaal opnieuw te implementeren, moet er veel codeerinspanning worden besteed. Om dat te voorkomen kunnen we een concept gebruiken genaamd ABAP List Viewer (ALV).
Elk van deze rapporten biedt functie modules die helpen bij het produceren van de gewenste output zonder veel moeite. Laten we ze in detail bekijken –
Eenvoudig rapport
Belangrijke functiemodules hierin verslag zijn -
- Hergebruik_alv_fieldcatalog_merge
- Hergebruik_alv_list_display
- Hergebruik_alv_events_get
- Hergebruik_alv_grid_display
- Hergebruik_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Met dit functieblok wordt een veldcatalogus gevuld die essentieel is voor de weergave van de gegevens in ALV.
Als de uitvoergegevens afkomstig zijn uit één woordenboektabel en alle kolommen zijn geselecteerd, hoeven we niet exclusief de veldcatalogus te maken. Het is voldoende om de tabelnaam als parameter (I_structure_name) in REUSE_ALV_LIST_DISPLAY te vermelden. Maar in andere gevallen moeten we het creëren.
Let op: Fieldcatalog kan ook handmatig worden ingevuld door alle vereiste details in de interne tabel in te vullen
Belangrijke parameters zijn:
1. Uitvoer:
- I_program_name: rapport-ID
- I_internal_tabname : de interne uitvoertabel
- I_inclname: include of de rapportnaam waar alle dynamische formulieren worden afgehandeld.
2. Veranderen
- ct_fieldcat: een interne tafel met het type SLIS_T_FIELDCAT_ALV dat is gedeclareerd in de typepool SLIS.
REUSE_ALV_LIST_DISPLAY
Dit is de functiemodule die de gegevens afdrukt.
De belangrijke parameters zijn:
1. Uitvoer:
- I_callback_program: rapport-ID
- I_bypass_buffer : 'X'
- I_buffer_actief : ' '
- I_callback_pf_status_set: routine waarbij een gebruiker zijn eigen pf-status kan instellen of de functionaliteit van de bestaande pf-status kan wijzigen.
- I_callback_user_command: routine waarin de functiecodes worden afgehandeld.
- I_structure naam: naam van de woordenboektabel
- Is_Layout: structuur om de lay-out van het rapport in te stellen
- It_fieldcat: interne tabel met de lijst van alle velden en hun attributen die moeten worden afgedrukt (deze tabel kan automatisch worden gevuld door de functie)
- It_events: interne tabel met een lijst van alle mogelijke gebeurtenissen van ALV en de bijbehorende formuliernamen.
2. Tabellen:
- A. t_outtab: interne tabel met de uit te voeren gegevens
REUSE_ALV_EVENTS_GET:
Retourneert een tabel met mogelijke gebeurtenissen voor een lijsttype
1. Importeren:
Et_Events :De gebeurtenissentabel wordt geretourneerd met alle mogelijke CALLBACK-gebeurtenissen voor het opgegeven lijsttype (kolom 'NAAM'). Om gebeurtenissen door de Callback te kunnen verwerken, moet het veld 'FORM' worden ingevuld. Als het veld is geïnitialiseerd, wordt de gebeurtenis genegeerd. De invoer kan uit de gebeurtenissentabel worden gelezen, het veld 'FORM' wordt ingevuld en de invoer kan worden gewijzigd met behulp van constanten uit het type pool SLIS.
2. Uitvoer:
I_list_type: 0 = eenvoudige lijst REUSE_ALV_LIST_DISPLAY
1 = hiërarchisch-sequentiële lijst REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = eenvoudige blokkeerlijst REUSE_ALV_BLOCK_LIST_APPEND
3 = hiërarchisch-sequentiële bloklijst REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Een nieuwe functie vanaf de ABAP4.6-versie, om de resultaten in een raster weer te geven in plaats van in een voorbeeld.
Parameters: hetzelfde als hergebruik_alv_list_display
Let op: Grid kan geen grote volumes aan. Functies zoals sorteren, scrollen naar beneden verbruiken veel resources/tijd als de hoeveelheid data die moet worden weergegeven groot is. Er is geen duidelijke definitie, dus als de hoeveelheid data X is, kies dan voor lijst of grid, maar de ontwikkelaar moet een beslissing nemen op basis van zijn ervaring. Als u het niet zeker weet, is lijst de betere optie.
REUSE_ALV_COMMENTARY_WRITE
Dit wordt gebruikt in de Top-of-page-gebeurtenis om de koppen en andere opmerkingen voor de lijst af te drukken.
Belangrijke parameters:
- It_list_commentary: Interne tabel met de koppen van het type slis_t_listheader.
Deze interne tabel heeft drie velden:
- Typ: 'H' – koptekst, 'S' – selectie, 'A' – actie
- Toets: alleen als het type 'S' is.
- Info: de af te drukken tekst
Rapport blokkeren
Dit lijkt een eenvoudig rapport, maar dit rapport heeft alleen de functies van sorteren en filteren. Dit rapport wordt gebruikt als u meer dan één rapport op de uitvoer moet weergeven. Technisch gesproken, als u meerdere interne tabellen hebt met gegevens die als afzonderlijke blokken moeten worden weergegeven, dan gaan we voor een blokrapport van ALV.
De belangrijke functies die worden gebruikt voor het maken van dit rapport zijn:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Deze functiemodule wordt gebruikt om de standaard gui-status enz. in te stellen. De parameters zijn vergelijkbaar met degene die worden gebruikt in hergebruik_alv_list_display of hergebruik_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Deze functiemodule voegt de gegevens toe aan het blok.
Belangrijke parameters:
1.Exporteren:
- is_layout: lay-outinstellingen voor blok
- it_fieldcat: veldcatalogus
- I_tabname : interne tabelnaam met alle mogelijke gebeurtenissen
2.Tabellen:
- t_outtab: interne tabel met uitvoergegevens.
REUSE_ALV_BLOCK_LIST_DISPLAY
Deze functiemodule geeft de lijst weer met gegevens toegevoegd door de bovenstaande functie.
Parameters: Alle parameters zijn optioneel.
Hiërarchische rapporten
Hiërarchische weergave wordt gebruikt voor het weergeven van gegevens die gerelateerd zijn. Zoals verkooporder- en artikelgegevens. Hier kunnen verkoopordergegevens de headergegevens zijn, terwijl de items in de verkooporder de artikelgegevens kunnen zijn.
De functiemodule die hiervoor wordt gebruikt is
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Exporteren:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- Het_fieldcat
- Het_evenementen
- I_tabname_header : Naam van de interne tabel in het programma die de uitvoergegevens van het hoogste hiërarchieniveau bevat.
- I_tabname_item : Naam van de interne tabel in het programma die de uitvoergegevens van het laagste hiërarchieniveau bevat.
- Is_keyinfo: deze structuur bevat de veldnamen van de header- en itemtabel die de twee tabellen met elkaar verbinden (gedeelde sleutel).
Tafels
- t_outtab_header: Koptabel met gegevens die moeten worden uitgevoerd
- t_outtab_item : Naam van de interne tabel in het programma die de uitvoergegevens van het laagste hiërarchieniveau bevat.
Alle definities van interne tabellen, structuren en constanten worden gedeclareerd in een typepool genaamd SLIS. Deze interne tabel kan automatisch worden gevuld met REUSE_ALV_FIELDCATALOG_MERGE'.
Varianten weergeven
- Weergavevarianten worden gebruikt om de standaardeigenschappen van een alv-uitvoer in te stellen, zoals sorteercriteria, filtercriteria, optellingen en subtotalen enz.
- Weergavevarianten kunnen gebruikersspecifiek en standaard zijn (standaardvarianten kunnen door elke gebruiker worden gebruikt)
- Het soort weergavevarianten dat kan worden opgeslagen, wordt bepaald door de parameter i_save die wordt doorgegeven in de functiemodules hergebruik_alv_list_display / hergebruik_alv_grid_display
- Op het selectiescherm kunt u een optie opgeven om te selecteren welke displayvariant u wilt gebruiken
De algemene functiemodules met betrekking tot het selecteren/valideren van weergavevarianten zijn
- Hergebruik_alv_variant_default_get
- Hergebruik_alv_variant_f4
- Hergebruik_alv_variant_existence
Dat is alles ABAP – ALV-programmering!