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

  1. Parametre
  2. 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.

Valg skjerm

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.

  1. Den tilbyr sjekkbetingelser for å se om inndataene er korrekte, fullstendige og plausible
  2. Den inneholder sentrale autorisasjonssjekker for databasetilgang
  3. 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