ALV-rapporten in SAP-zelfstudie – 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.

Opmerking: Fieldcatalog kan ook handmatig worden gevuld door alle vereiste de in te vullentails in de interne tabel

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
  • ik_omzeild_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 = hierarchical-sequentiële lijst REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = eenvoudige blokkeerlijst REUSE_ALV_BLOCK_LIST_APPEND

3 = hierarchical-sequentiële blokkeerlijst 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

Opmerking: Grid kan geen grote volumes aan. Functies zoals sorteren en naar beneden scrollen verbruiken veel bronnen/tijd als de hoeveelheid weer te geven gegevens groot is. Er is geen duidelijke definitie, zodat als de hoeveelheid gegevens X is, u voor een lijst of een raster moet kiezen, maar de ontwikkelaar moet een oproep beantwoorden 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:

  1. Typ: 'H' – koptekst, 'S' – selectie, 'A' – actie
  2. Toets: alleen als het type 'S' is.
  3. Info: de af te drukken tekst

Rapport blokkeren

Dit ziet eruit als een eenvoudig rapport, maar dit rapport heeft alleen de functies voor sorteren en filteren. Dit rapport wordt gebruikt als u meer dan één rapport over de uitvoer moet weergeven. Technisch gesproken, als je meerdere interne tabellen hebt met gegevens die als afzonderlijke blokken moeten worden weergegeven, dan kiezen we voor blokrapportage 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.

hierarchical-rapporten

hierarchical display wordt gebruikt voor het weergeven van gerelateerde gegevens. Zoals verkooporder en artikel details. Hier verkooporder details kunnen de kopgegevens zijn, terwijl deze artikelen 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

  1. Hergebruik_alv_variant_default_get
  2. Hergebruik_alv_variant_f4
  3. Hergebruik_alv_variant_existence

Dat is alles ABAP – ALV-programmering!