Allt om ABAP-rapportprogrammering

SAP-ABAP stöder två typer av program – rapportprogram och dialogprogram. Rapportprogram används när stora mängder data behöver visas

Syfte/Användning av rapportprogram

  • De används när data från ett antal tabeller ska väljas och bearbetas innan presentation
  • Används när rapporter kräver ett speciellt format
  • Används när rapporten ska laddas ner från SAP till ett Excel-ark som ska distribueras över.
  • Används när rapporten ska skickas till en viss person.

Viktiga punkter att notera om rapportprogrammet

  • Rapportprogram är alltid körbara program. Programtyp är alltid 1.
  • Varje rapportprogram motsvarar en viss applikationstyp dvs antingen med försäljning & distribution, FI – CO etc. Det kan också vara Cross Application dvs typ '*'.
  • Rapportprogrammering är en händelsestyrd programmering.
  • Den första raden i ett rapportprogram är alltid Rapport .
  • För att undertrycka listrubriken eller namnet på programmet tillägget Ingen standardsidarubrik är använd.
  • Radstorleken för en viss rapport kan ställas in med hjälp av tillägget linjestorlek .
  • Radantalet för en viss sida kan ställas in genom att använda tillägget radantal n(n1). N är antalet rader för sidan och N1 är antalet rader reserverade för sidfoten.
  • För att visa någon information eller felmeddelande lägger vi till en meddelandeklass till programmet med tillägget: Meddelande-id . Meddelandeklasser upprätthålls i SE91.

Därför bör ett idealiskt rapportprogram börja med:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Urvalsskärm

"Valskärm" är den skärm där man anger de ingångsvärden som programmet ska köras för.

Valskärmen genereras normalt från

  1. parametrar
  2. Välj inställningar

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 #>

parametrar

Parametrar hjälper en att göra dynamiskt urval. De kan endast ta emot ett värde för en cykel av programmets exekvering.

syntax

Definiera parametrar som en datatyp

Parameters p_id(30) type c.

Definiera parametrar som ett tabellfält.

Parameter p_id like <table name>-<field name>.

Parametrar kan vara kryssrutor och radioknappar.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

Parametrar kan vara listbox.

Parameter p_id like <table name>-<field name> as listbox

Alternativ

En Select-Option används för att mata in ett värdeintervall eller en uppsättning värden till ett program

syntax

select-options s_vbeln for vbak-vbeln.

Urvalsskärm

Du kan också definiera ett valalternativ som en variabel

select-options s_vbeln for vbak-vbeln no intervals no-extension

Händelser i ett ABAP-rapportprogram

ABAP rapportprogram är händelsedrivna program. De olika händelserna i ett rapportprogram är:

Laddat av programmet

  • Utlöser den associerade händelsen i en intern session efter att ha laddat ett program av typ 1, M, F eller S.
  • Kör också det associerade bearbetningsblocket en gång och endast en gång för varje program och intern session.
  • Bearbetningsblocket LOAD-OF-PROGRAM har ungefär samma funktion för en ABAP-program av typ 1, M, F eller S som en konstruktor har för klasser i ABAP Objects

Initialisering.

  • Denna händelse utförs innan valskärmen visas.
  • Initiering av alla värden.
  • Du kan tilldela andra värden än de som är standardvärden på urvalsskärmen.
  • Du kan fylla din urvalsskärm med några värden under körning.

På urvalsskärmen.

  • Händelsen behandlas när urvalsskärmen har bearbetats (i slutet av PAI ).
  • Validering och kontroller av inmatade värden sker här

Start av urval.

  • Här börjar programmet välja värden från tabeller.

Slut på urval.

  • Efter att alla data har valts skriver denna händelse data till skärmen.

Interaktiva evenemang

  • Används för interaktiv rapportering. Den används för att skapa en detaljerad lista från en grundläggande lista.

Formatera rapporten

ABAP tillåter att rapporterna formateras som användaren vill att de ska vara. Till exempel måste "Alternativa linjer" visas i olika färger och raden "Total" ska visas i gult.

syntax

Format Color n

Format Color n Intensified On

n kan motsvara olika nummer

Observera att det finns andra tillägg tillsammans med format också

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Interaktiv rapportprogrammering

  • Användare av interaktiv programmering kan aktivt kontrollera datahämtning och visning av data
  • Används för att skapa en detaljerad lista från en mycket grundläggande lista
  • Den detaljerade informationen skrivs på en sekundär lista.
  • Den sekundära listan kan antingen överlappa den första skärmen helt eller så kan man visa den på en ny skärm
  • De sekundära listorna kan själva vara interaktiva.
  • Den första listan kan också anropa en transaktion.
  • Det finns olika evenemang förknippade med interaktiv programmering.

Vissa kommandon används för interaktiv programmering

hotspot

Om man drar musen över data som visas i rapporten ändras markören till en hand med ett utsträckt pekfinger. En hotspot kan uppnås med FORMAT-satsen.

Syntax:      Format Hotspot On (Off).

Dölja

Det här kommandot hjälper dig att lagra fältnamnen baserat på vilket som kommer att göra ytterligare bearbetning för att få en detaljerad lista. Det skrivs direkt efter WRITE-satsen för ett fält. När en rad väljs fylls värdena automatiskt i variablerna för vidare användning.

Syntax:     Hide <field-name>.

Logiska databaser

  • Istället för att använda "Select"-frågor kan du använda logisk databas för att hämta data för ett program.
  • Logiska databaser skapas genom transaktion SE36
  • Namnet på en logisk databas kan vara upp till 20 tecken långt. Det kan börja med ett namnområdesprefix.
  • Data väljs av ett annat program och man kan komma åt data med GET kommando som placerar data i arbetsområdet .

Fördelar med en logisk databas jämfört med vanliga Select-frågor.

  1. Den erbjuder kontrollvillkor för att se om inmatningen är korrekt, fullständig och rimlig
  2. Den innehåller centrala behörighetskontroller för databasåtkomst
  3. Förbättringar som förbättring av prestanda gäller omedelbart för alla rapporter som använder logisk databas.

Obs: På grund av komplexiteten används inte logiska databaser i de flesta fall