De gemeenschappelijke gewenste kenmerken van elk rapport zijn "kolomuitlijning", sorteren, filteren, subtotalen, totalen enz. Om deze vanaf nul te implementeren, is veel codeerwerk vereist. Om dat te voorkomen kunnen we een concept gebruiken dat ABAP List Viewer (ALV) heet.
In deze tutorial leer je:
- Eenvoudig rapport
- Rapport blokkeren
- Hiërarchische rapporten
- Varianten weergeven
Elk van deze rapporten biedt functiemodules die helpen bij het produceren van de gewenste output zonder veel moeite. Laten we ze in detail bekijken -
Eenvoudig rapport
Belangrijke functiemodules in dit rapport zijn -
- Hergebruik_alv_fieldcatalog_merge
- Hergebruik_alv_lijst_display
- Hergebruik_alv_events_get
- Hergebruik_alv_grid_display
- Hergebruik_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Dit functieblok wordt gebruikt om een veldcatalogus te vullen die essentieel is om de gegevens in ALV weer te geven.
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) te vermelden in de REUSE_ALV_LIST_DISPLAY. Maar in andere gevallen moeten we het maken.
Opmerking: Veldcatalogus kan ook handmatig worden gevuld door alle vereiste gegevens in de interne tabel
in te vullen. Belangrijke parameters zijn:
1. Exporteren:
- I_program_name: rapport-id
- I_internal_tabname: de interne uitvoertabel
- I_inclname: inclusief of de rapportnaam waar alle dynamische formulieren worden afgehandeld.
2. Veranderen
- ct_fieldcat: een interne tabel met het type SLIS_T_FIELDCAT_ALV die wordt gedeclareerd in het type pool SLIS.
REUSE_ALV_LIST_DISPLAY
Dit is het functieblok dat de gegevens afdrukt.
De belangrijkste parameters zijn:
1. Exporteren:
- I_callback_program: rapport-id
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- 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 waar de functiecodes worden afgehandeld.
- I_structure name: 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 hun bijbehorende formuliernamen.
2. Tabellen:
- een. t_outtab: interne tabel met de gegevens die moeten worden uitgevoerd
REUSE_ALV_EVENTS_GET:
Retourneert een tabel met mogelijke gebeurtenissen voor een lijsttype
1. Import:
Et_Events: De gebeurtenistabel wordt geretourneerd met alle mogelijke CALLBACK-gebeurtenissen voor het opgegeven lijsttype (kolom 'NAME'). Om events te laten verwerken door de Callback, moet hun 'FORM'-veld worden ingevuld. Als het veld is geïnitialiseerd, wordt de gebeurtenis genegeerd. Het item kan worden gelezen uit de gebeurtenistabel, het veld 'FORM' is gevuld en het item kan worden gewijzigd met behulp van constanten van het type pool SLIS.
2. Exporteren:
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 blokkeerlijst REUSE_ALV_BLOCK_LIST
REUSE_ALV_GRID_DISPLAY
Een nieuwe functie van de ABAP4.6-versie, om de resultaten in een raster weer te geven in plaats van in een voorbeeld.
Parameters: hetzelfde als hergebruik_alv_lijst_display
Opmerking: Grid kan geen hoge volumes aan. Functies zoals sorteren en naar beneden scrollen nemen veel bronnen / tijd in beslag als de hoeveelheid weer te geven gegevens groot is. Er is geen duidelijke definitie zodat als de hoeveelheid gegevens X is, ga voor lijst of raster, maar de ontwikkelaar moet een oproep aannemen 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 commentaren 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
- Sleutel: alleen als typ 'S' is.
- Info: de te printen tekst
Rapport blokkeren
Dit ziet eruit als een eenvoudig rapport, maar dit rapport heeft alleen de kenmerken van sorteren en filteren. Dit rapport wordt gebruikt als u meer dan één rapport over de uitvoer moet weergeven. Als je technisch gezien meerdere interne tabellen hebt met gegevens die als aparte blokken moeten worden weergegeven, dan gaan we voor blokrapportage van ALV.
De belangrijkste 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
Dit functieblok wordt gebruikt om de standaard gui-status enz. In te stellen. De parameters zijn vergelijkbaar met degene die worden gebruikt in hergebruik_alv_lijst_display of hergebruik_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Dit functieblok voegt de gegevens toe aan het blok.
Belangrijke parameters
1. exporteren:
- is_layout: layout-instellingen voor block
- 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 gerelateerde gegevens. Zoals verkooporder- en itemdetails. Hier kunnen verkoopordergegevens de kopgegevens 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
- It_fieldcat
- It_events
- I_tabname_header: Naam van de interne tabel in het programma met de uitvoergegevens van het hoogste hiërarchieniveau.
- I_tabname_item: Naam van de interne tabel in het programma met de uitvoergegevens van het laagste hiërarchieniveau.
- Is_keyinfo: Deze structuur bevat de veldnamen van de koptekst en itemtabel die de twee tabellen met elkaar verbinden (gedeelde sleutel).
Tabellen
- t_outtab_header: koptabel met gegevens die moeten worden uitgevoerd
- t_outtab_item: Naam van de interne tabel in het programma met de uitvoergegevens van het laagste hiërarchieniveau.
Alle definities van interne tabellen, structuren en constanten worden gedeclareerd in een type-pool 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, totalen en subtotalen enz.
- Weergavevarianten kunnen gebruikersspecifiek en standaard zijn (standaardvarianten kunnen door elke gebruiker worden gebruikt)
- Het soort displayvarianten dat kan worden opgeslagen, wordt bepaald door de parameter i_save die wordt doorgegeven in de functiemodules reuse_alv_list_display / reuse_alv_grid_display
- U kunt op het selectiescherm een optie voorzien om te selecteren welke weergavevariant 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_bestaan
Dat is alles voor ABAP-ALV-programmering!