Alt om ABAP-rapportprogrammering
SAP-ABAP understøtter to typer programmer - Rapportprogrammer & Dialogprogrammer. Rapportprogrammer bruges, når store mængder data skal vises
Formål/brug af rapportprogrammer
- De bruges, når data fra en række tabeller skal udvælges og behandles før præsentation
- Bruges, når rapporter kræver et særligt format
- Anvendes når rapporten skal downloades fra SAP til et Excel-ark, der skal distribueres på tværs.
- Bruges når rapporten skal sendes til en bestemt person.
Vigtige punkter at bemærke om rapportprogrammet
- Rapportprogrammer er altid eksekverbare programmer. Programtype er altid 1.
- Hvert rapportprogram svarer til en bestemt applikationstype, dvs. enten med Salg & Distribution, FI – CO osv. Det kan også være Cross Application, dvs. type '*'.
- Rapportprogrammering er en begivenhedsdrevet programmering.
- Den første linje i et rapportprogram er altid Rapport .
- Tilføjelsen for at undertrykke listeoverskriften eller navnet på programmet Ingen standardsideoverskrift anvendes.
- Linjestørrelsen for en bestemt rapport kan indstilles ved at bruge tilføjelsen linje-størrelse .
- Linjeantal for en bestemt side kan indstilles ved at bruge tilføjelsen linjeantal n(n1). N er antallet af linjer for siden, og N1 er antallet af linjer, der er reserveret til sidefoden.
- For at vise enhver information eller fejlmeddelelse tilføjer vi en meddelelsesklasse til programmet ved hjælp af tilføjelsen: Besked-id . Meddelelsesklasser opretholdes i SE91.
Derfor bør et ideelt rapportprogram starte med:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Valg skærm
"Udvalgsskærm" er den skærm, hvor man angiver de inputværdier, som programmet skal køre for.
Valgskærmen genereres normalt fra
- Driftsparametre
- Vælg-Indstillinger
Syntaks
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 #>
Driftsparametre
Parametre hjælper en med at foretage dynamisk udvælgelse. De kan kun rumme én værdi for én cyklus af programmets udførelse.
Syntaks
Definition af parametre som en datatype
Parameters p_id(30) type c.
Definition af parametre som et tabelfelt.
Parameter p_id like <table name>-<field name>.
Parametre kan være afkrydsningsfelter såvel som radioknapper.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Parametre kan være listeboks.
Parameter p_id like <table name>-<field name> as listbox
Vælg Valg
En Select-Option bruges til at indtaste en række værdier eller et sæt værdier til et program
Syntaks
select-options s_vbeln for vbak-vbeln.
Du kan også definere en valgmulighed som en variabel
select-options s_vbeln for vbak-vbeln no intervals no-extension
Begivenheder i et ABAP-rapportprogram
ABAP rapport programmer er begivenhedsdrevne programmer. De forskellige begivenheder i et rapportprogram er:
Indlæsning af programmet
- Udløser den tilknyttede hændelse i en intern session efter indlæsning af et program af type 1, M, F eller S.
- Kører også den tilhørende behandlingsblok én gang og kun én gang for hvert program og intern session.
- Behandlingsblokken LOAD-OF-PROGRAM har nogenlunde samme funktion for en ABAP program af type 1, M, F eller S som en konstruktør har for klasser i ABAP Objects
Initialisering.
- Denne hændelse udføres før valgskærmen vises.
- Initialisering af alle værdier.
- Du kan tildele andre værdier end de værdier, der er standard på valgskærmen.
- Du kan fylde din valgskærm med nogle værdier under kørsel.
På Udvælgelsesskærm.
- Hændelsen behandles, når valgskærmen er blevet behandlet (ved slutningen af PAI).
- Validering og kontrol af indtastede værdier sker her
Start af udvælgelse.
- Her begynder programmet at vælge værdier fra tabeller.
Slut på valg.
- Efter at alle data er valgt, skriver denne hændelse dataene til skærmen.
Interaktive begivenheder
- Anvendes til interaktiv rapportering. Det bruges til at oprette en detaljeret liste fra en grundlæggende liste.
Formatering af rapporten
ABAP tillader, at rapporterne formateres, som brugeren ønsker det. For eksempel skal "Alternative Lines" vises i forskellige farver, og "Totals"-linjen skal vises med gult.
Syntaks
Format Color n Format Color n Intensified On
n kan svare til forskellige tal
Bemærk venligst, at der også er andre tilføjelser sammen med format
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Interaktiv rapportprogrammering
- Ved at bruge interaktiv programmering kan brugere aktivt kontrollere datahentning og visning af data
- Bruges til at oprette en detaljeret liste ud fra en meget grundlæggende liste
- De detaljerede data er skrevet på en sekundær liste.
- Den sekundære liste kan enten overlejre den første skærm fuldstændigt, eller man kan vise den på en ny skærm
- De sekundære lister kan selv være interaktive.
- Den første liste kan også kalde en transaktion.
- Der er forskellige begivenheder forbundet med interaktiv programmering.
Nogle kommandoer bruges til interaktiv programmering
Hotspot
Hvis man trækker musen hen over de data, der vises i rapporten, skifter markøren til en hånd med en udstrakt pegefinger. Et hotspot kan opnås ved hjælp af FORMAT-sætningen.
Syntax: Format Hotspot On (Off).
Skjule
Denne kommando hjælper dig med at gemme feltnavnene baseret på, hvilken der skal udføre yderligere behandling for at få en detaljeret liste. Det skrives direkte efter WRITE-sætningen for et felt. Når en række er valgt, bliver værdierne automatisk udfyldt variablerne til videre brug.
Syntax: Hide <field-name>.
Logiske databaser
- I stedet for at bruge "Vælg"-forespørgsler kan du bruge logisk database til at hente data til et program.
- Logiske databaser oprettes ved transaktion SE36
- Navnet på en logisk database kan være op til 20 tegn langt. Det kan begynde med et navneområdepræfiks.
- Dataene vælges af et andet program, og man kan få adgang til dataene ved hjælp af GET kommando, som placerer dataene i arbejdsområdet .
Fordele ved en logisk database i forhold til normale Select-forespørgsler.
- Det tilbyder kontrolbetingelser for at se, om inputtet er korrekt, fuldstændigt og plausibelt
- Den indeholder centrale autorisationstjek for databaseadgang
- Forbedringer såsom forbedring af ydeevnen gælder umiddelbart for alle rapporter, der bruger logisk database.
Bemærk: På grund af kompleksiteten, bruges logiske databaser ikke i de fleste tilfælde