Alt om ABAP-rapportprogrammering
SAP-ABAP støtter to typer programmer - Rapportprogrammer og dialogprogrammer. Rapportprogrammer brukes når store datamengder skal vises
Formål/bruk av rapportprogrammer
- De brukes når data fra en rekke tabeller skal velges og behandles før presentasjon
- Brukes når rapporter krever et spesielt format
- Brukes når rapporten skal lastes ned fra SAP til et Excel-ark som skal distribueres på tvers.
- Brukes når rapporten skal sendes til en bestemt person.
Viktige punkter å merke seg om rapportprogrammet
- Rapportprogrammer er alltid kjørbare programmer. Programtype er alltid 1.
- Hvert rapportprogram tilsvarer en bestemt applikasjonstype, dvs. enten med salg og distribusjon, FI – CO osv. Det kan også være kryssapplikasjon, dvs. type '*'.
- Rapportprogrammering er en hendelsesdrevet programmering.
- Den første linjen i et rapportprogram er alltid Rapport .
- For å undertrykke listeoverskriften eller navnet på programmet tillegget Ingen standard sideoverskrift benyttes.
- Linjestørrelsen for en bestemt rapport kan angis ved å bruke tillegget linje-størrelse .
- Linjeantallet for en bestemt side kan angis ved å bruke tillegget linjeantall n(n1). N er antall linjer for siden og N1 er antall linjer reservert for sidebunnteksten.
- For å vise informasjon eller feilmeldinger legger vi til en meldingsklasse i programmet ved å bruke tillegget: Meldings-ID . Meldingsklasser opprettholdes 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 skjerm
"Selection screen" er skjermen der man spesifiserer inngangsverdiene som programmet skal kjøres for.
Valgskjermen genereres vanligvis fra
- Parametre
- Velg-Alternativer
syntax
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 #>
Parametre
Parametere hjelper en til å gjøre dynamisk utvalg. De kan kun romme én verdi for én syklus med utførelse av programmet.
syntax
Definere parametere som en datatype
Parameters p_id(30) type c.
Definere parametere som et tabellfelt.
Parameter p_id like <table name>-<field name>.
Parametre kan være avmerkingsbokser 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
Velg alternativer
En Select-Option brukes til å legge inn et verdiområde eller et sett med verdier til et program
syntax
select-options s_vbeln for vbak-vbeln.
Du kan også definere et valgalternativ som en variabel
select-options s_vbeln for vbak-vbeln no intervals no-extension
Hendelser i et ABAP-rapportprogram
ABAP rapport programmer er hendelsesdrevne programmer. De forskjellige hendelsene i et rapportprogram er:
Lasting av programmet
- Utløser den tilknyttede hendelsen i en intern økt etter å ha lastet et program av type 1, M, F eller S.
- Kjører også den tilknyttede behandlingsblokken én og én gang kun for hvert program og intern økt.
- Behandlingsblokken LOAD-OF-PROGRAM har omtrent samme funksjon for en ABAP-program av type 1, M, F eller S som en konstruktør har for klasser i ABAP Objects
Initialisering.
- Denne hendelsen utføres før valgskjermen vises.
- Initialisering av alle verdiene.
- Du kan tilordne andre verdier enn standardverdiene på valgskjermen.
- Du kan fylle valgskjermen med noen verdier under kjøring.
På Selection-Screen.
- Hendelsen behandles når valgskjermen er behandlet (på slutten av PAI ).
- Validering og kontroller av innlagte verdier skjer her
Start-av-utvalg.
- Her begynner programmet å velge verdier fra tabeller.
Slutt på utvalget.
- Etter at alle dataene er valgt, skriver denne hendelsen dataene til skjermen.
Interaktive arrangementer
- Brukes til interaktiv rapportering. Den brukes til å lage en detaljert liste fra en grunnleggende liste.
Formatering av rapporten
ABAP lar rapportene formateres slik brukeren vil ha det. For eksempel må "Alternative Lines" vises i forskjellige farger og "Totals"-linjen skal vises i gult.
syntax
Format Color n Format Color n Intensified On
n kan tilsvare forskjellige tall
Vær oppmerksom på at det er andre tillegg sammen med format også
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Interaktiv rapportprogrammering
- Ved å bruke interaktiv programmering kan brukere aktivt kontrollere datainnhenting og visning av data
- Brukes til å lage en detaljert liste fra en veldig grunnleggende liste
- De detaljerte dataene er skrevet på en sekundærliste.
- Sekundærlisten kan enten overlegge den første skjermen fullstendig, eller man kan vise den på en ny skjerm
- Sekundærlistene kan selv være interaktive.
- Den første listen kan også kalle en transaksjon.
- Det er forskjellige arrangementer knyttet til interaktiv programmering.
Noen kommandoer som brukes for interaktiv programmering
hotspot
Hvis man drar musen over dataene som vises i rapporten, endres markøren til en hånd med en utstrakt pekefinger. Et hotspot kan oppnås ved å bruke FORMAT-setningen.
Syntax: Format Hotspot On (Off).
Gjemme seg
Denne kommandoen hjelper deg med å lagre feltnavnene basert på hvilken som skal behandle videre for å få en detaljert liste. Den skrives rett etter WRITE-setningen for et felt. Når en rad er valgt, blir verdiene automatisk fylt ut variablene for videre bruk.
Syntax: Hide <field-name>.
Logiske databaser
- I stedet for å bruke "Select"-spørringer kan du bruke logisk database for å hente data for et program.
- Logiske databaser opprettes ved transaksjon SE36
- Navnet på en logisk database kan være opptil 20 tegn langt. Det kan begynne med et navneområdeprefiks.
- Dataene velges av et annet program og man kan få tilgang til dataene ved hjelp av GET kommando som plasserer dataene i arbeidsområdet .
Fordeler med en logisk database fremfor vanlige Select-spørringer.
- Den tilbyr sjekkbetingelser for å se om inndataene er korrekte, fullstendige og plausible
- Den inneholder sentrale autorisasjonssjekker for databasetilgang
- Forbedringer som forbedring i ytelse gjelder umiddelbart for alle rapporter som bruker logisk database.
Merk: På grunn av kompleksiteten som er involvert, brukes ikke logiske databaser i de fleste tilfellene