Alles over ABAP-rapportprogrammering
SAP-ABAP ondersteunt twee soorten programma's: rapportprogramma's en dialoogprogramma's. Rapportprogramma's worden gebruikt wanneer grote hoeveelheden data moeten worden weergegeven
Doel/gebruik van rapportprogramma's
- Ze worden gebruikt wanneer gegevens uit een aantal tabellen moeten worden geselecteerd en verwerkt voordat ze worden gepresenteerd
- Wordt gebruikt wanneer rapporten een speciaal formaat vereisen
- Wordt gebruikt wanneer het rapport moet worden gedownload van SAP naar een Excel-blad om over te verspreiden.
- Wordt gebruikt wanneer het rapport naar een bepaalde persoon moet worden gemaild.
Belangrijke punten om op te merken over het rapportprogramma
- Rapportprogramma's zijn altijd uitvoerbare programma's. Programmatype is altijd 1.
- Elk Rapportprogramma komt overeen met een bepaald Applicatietype, dwz met Verkoop & Distributie, FI – CO etc. Het kan ook een Cross-applicatie zijn, dwz type '*'.
- Rapportprogrammering is een gebeurtenisgestuurde programmering.
- De eerste regel van een rapportprogramma is altijd Report .
- Om de lijstkop of de naam van het programma te onderdrukken, wordt de toevoeging onderdrukt Geen standaardpaginakop is gebruikt.
- Met behulp van de toevoeging kunt u de lijngrootte voor een bepaald rapport instellen lijn grootte .
- Het aantal regels voor een bepaalde pagina kan worden ingesteld met behulp van de optelling aantal lijnen n(n1). N is het aantal regels voor de pagina en N1 is het aantal regels gereserveerd voor de paginavoettekst.
- Om informatie of foutmeldingen weer te geven, voegen we een berichtklasse toe aan het programma met behulp van de toevoeging: Bericht-ID . Berichtklassen worden bijgehouden in SE91.
Daarom zou een ideaal rapportprogramma moeten beginnen met:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Selectiescherm
“Selectiescherm” is het scherm waarin men de invoerwaarden specificeert waarvoor het programma moet draaien.
Het selectiescherm wordt normaal gesproken gegenereerd vanuit het
- parameters
- Selecteer opties
Syntaxis
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
parameters
Parameters helpen iemand om dynamische selectie uit te voeren. Ze kunnen slechts één waarde bevatten voor één uitvoeringscyclus van het programma.
Syntaxis
Parameters definiëren als een gegevenstype
Parameters p_id(30) type c.
Parameters definiëren zoals een tabelveld.
Parameter p_id like <table name>-<field name>.
Parameters kunnen zowel selectievakjes als keuzerondjes zijn.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Parameters kunnen een keuzelijst zijn.
Parameter p_id like <table name>-<field name> as listbox
Maak een keuze
Een Select-Option wordt gebruikt om een reeks waarden of een reeks waarden in een programma in te voeren
Syntaxis
select-options s_vbeln for vbak-vbeln.
U kunt ook een selectieoptie definiëren, zoals een variabele
select-options s_vbeln for vbak-vbeln no intervals no-extension
Gebeurtenissen in een ABAP-rapportprogramma
ABAP-rapportprogramma's zijn dat wel gebeurtenisgestuurde programma's. De verschillende gebeurtenissen in een rapportprogramma zijn:
Programma laden
- Activeert de bijbehorende gebeurtenis in een interne sessie na het laden van een programma van type 1, M, F of S.
- Voert bovendien het bijbehorende verwerkingsblok eenmalig uit voor elk programma en elke interne sessie.
- Het verwerkingsblok LOAD-OF-PROGRAM heeft grofweg dezelfde functie voor een ABAP-programma van type 1, M, F of S als constructor voor klassen in ABAP Objects
Initialisatie.
- Deze gebeurtenis wordt uitgevoerd voordat het selectiescherm wordt weergegeven.
- Initialisatie van alle waarden.
- U kunt andere waarden toewijzen dan de standaardwaarden op het selectiescherm.
- U kunt uw selectiescherm tijdens runtime met enkele waarden vullen.
Bij Selectiescherm.
- De gebeurtenis wordt verwerkt wanneer het selectiescherm is verwerkt (aan het einde van PAI).
- Validatie en controles van ingevoerde waarden gebeuren hier
Begin van selectie.
- Hier begint het programma met het selecteren van waarden uit tabellen.
Einde van selectie.
- Nadat alle gegevens zijn geselecteerd, schrijft deze gebeurtenis de gegevens naar het scherm.
Interactieve Evenementen
- Gebruikt voor interactieve rapportage. Het wordt gebruikt om een gedetailleerde lijst te maken op basis van een basislijst.
Het rapport opmaken
Met ABAP kunnen de rapporten worden opgemaakt zoals de gebruiker dat wil. “Alternatieve lijnen” moeten bijvoorbeeld in verschillende kleuren verschijnen en de lijn “Totalen” moet in geel verschijnen.
Syntaxis
Format Color n Format Color n Intensified On
n kan overeenkomen met verschillende getallen
Houd er rekening mee dat er naast het formaat ook andere toevoegingen zijn
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Interactieve rapportprogrammering
- Met behulp van Interactief Programmeren kunnen gebruikers actief het ophalen en weergeven van gegevens controleren
- Wordt gebruikt om een gedetailleerde lijst te maken op basis van een zeer eenvoudige lijst
- De gedetailleerde gegevens worden op een secundaire lijst geschreven.
- De secundaire lijst kan volledig over het eerste scherm heen liggen of kan in een nieuw scherm worden weergegeven
- De secundaire lijsten kunnen zelf interactief zijn.
- De eerste lijst kan ook een transactie oproepen.
- Er zijn verschillende evenementen die verband houden met interactief programmeren.
Sommige opdrachten die worden gebruikt voor interactief programmeren
hotspot
Als u de muis over de in het rapport weergegeven gegevens sleept, verandert de cursor in een hand met een uitgestoken wijsvinger. Een hotspot kan worden bereikt met de FORMAT-instructie.
Syntax: Format Hotspot On (Off).
Verbergen
Met deze opdracht kunt u de veldnamen opslaan op basis waarvan u verdere verwerking gaat uitvoeren om een gedetailleerde lijst te krijgen. Het wordt direct na de WRITE-instructie voor een veld geschreven. Wanneer een rij wordt geselecteerd, worden de waarden automatisch ingevuld in de variabelen voor verder gebruik.
Syntax: Hide <field-name>.
Logische databases
- In plaats van “Select”-query’s te gebruiken, kunt u een logische database gebruiken om gegevens voor een programma op te halen.
- Logische databases worden gecreëerd door middel van transacties SE36
- De naam van een logische database kan maximaal 20 tekens lang zijn. Het kan beginnen met een naamruimtevoorvoegsel.
- De gegevens worden door een ander programma geselecteerd en men heeft toegang tot de gegevens met behulp van GET commando dat de gegevens in het werkgebied plaatst .
Voordelen van een logische database ten opzichte van normale Select-query's.
- Het biedt controlevoorwaarden om te zien of de invoer juist, volledig en plausibel is
- Het bevat centrale autorisatiecontroles voor databasetoegang
- Verbeteringen zoals verbetering van de prestaties zijn onmiddellijk van toepassing op alle rapporten die gebruik maken van een logische database.
Let op: Vanwege de complexiteit worden logische databases in de meeste gevallen niet gebruikt