SAP Programiranje ABAP izvješća
⚡ Pametni sažetak
ABAP programiranje izvješća gradi izvršne programe koji odabiru, obrađuju i prikazuju velike količine SAP podaci. Ova stranica objašnjava dodavanje zaglavlja izvješća, zaslon za odabir, slijed događaja, naredbe za oblikovanje, interaktivne popise i logičke baze podataka.

Što je ABAP programiranje izvješća?
SAP-ABAP podržava dvije vrste programa – programe za izvješća i programe za dijalog. Programi za izvješća koriste se kada je potrebno prikazati velike količine podataka.
Svrha/Korištenje programa za izvješća
- Koriste se kada se podaci iz više tablica moraju odabrati i obraditi prije prikazivanja.
- Koristi se kada izvješća zahtijevaju poseban format
- Koristi se kada se izvješće mora preuzeti s SAP na Excel list koji će se distribuirati.
- Koristi se kada se izvješće mora poslati određenoj osobi.
Važne napomene o programu izvješća
- Programi izvješća uvijek su izvršni programi. Vrsta programa je uvijek 1.
- Svaki program izvješća odgovara određenoj vrsti aplikacije, tj. ili s prodajom i distribucijom, FI – CO itd. Također može biti više aplikacija, tj. tip '*'.
- Programiranje izvješća je programiranje vođeno događajima.
- Prvi redak programa za izvješćivanje uvijek je Izvještaj .
- Za uklanjanje naslova popisa ili naziva programa dodajte dodatak Nema standardnog naslova stranice koristi se.
- Veličina retka za određeni izvještaj može se postaviti pomoću dodatka line-size .
- Broj redaka za određenu stranicu može se podesiti pomoću zbrajanja broj linija n(n1). N je broj redaka za stranicu, a N1 je broj redaka rezerviran za podnožje stranice.
- Za prikaz bilo koje informacije ili poruke o pogrešci dodajemo klasu poruka u program koristeći dodatak: ID poruke . Klase poruka održavaju se u SE91.
Stoga bi idealan program izvješća trebao započeti s:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Program izvješća u odnosu na program dijaloga
Obje vrste programa rade u istom sustavu, ali rješavaju suprotne probleme. Izvješće čita i prikazuje podatke, dok dijaloški program omogućuje korisniku da ih održava putem ekrana.
| Kriteriji | Program izvješća | Program dijaloga |
|---|---|---|
| Vrsta programa | Tip 1, izvršna datoteka | Tip M, bazen modula |
| Započeo od | Naziv programa ili kod transakcije | Samo kod transakcije |
| Kontrola protoka | Događaji kao što su INICIJALIZACIJA i POČETAK SELEKCIJE | Logika protoka zaslona s PBO i PAI modulima |
| Unos korisnika | Generirani zaslon za odabir | Zasloni dizajnirani u Zaslonu Painter |
| Tipična upotreba | Prikaz i preuzimanje velikih količina podataka | Izrada i promjena poslovnih podataka |
Zaslon za odabir je mjesto gdje izvješće prikuplja svoje unose, pa je opisan u nastavku.
Zaslon za odabir
„Zaslon za odabir“ je zaslon na kojem se određuju ulazne vrijednosti za koje bi se program trebao pokrenuti.
Zaslon za odabir obično se generira iz
- Parametri
- Odaberite-Opcije
Sintaksa
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 #>
Parametri
Parametri pomažu u dinamičkom odabiru. Oni mogu primiti samo jednu vrijednost za jedan ciklus izvođenja programa.
Sintaksa
Definiranje parametara kao tipa podataka
Parameters p_id(30) type c.
Definiranje parametara poput polja tablice.
Parameter p_id like <table name>-<field name>.
Parametri mogu biti potvrdni okviri kao i radiobuttoni.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Parametri mogu biti okvir s popisom.
Parameter p_id like <table name>-<field name> as listbox
Odaberite Opcije
Opcija odabira koristi se za unos raspona vrijednosti ili skupa vrijednosti u program
Sintaksa
select-options s_vbeln for vbak-vbeln.
Snimka zaslona prikazuje polja za unos niske i visoke vrijednosti koja generira opcija odabira, zajedno s gumbom za višestruki odabir.
Također možete definirati opciju odabira kao varijablu
select-options s_vbeln for vbak-vbeln no intervals no-extension
Nakon što se prikupe ulazni podaci, program reagira na fiksni slijed događaja.
Događaji u programu ABAP izvješća
Programi ABAP izvješća su programi vođeni događajima. Različiti događaji u programu izvješća su:
Učitavanje programa
- Pokreće pridruženi događaj u internoj sesiji nakon učitavanja programa tipa 1, M, F ili S.
- Također pokreće pridruženi blok obrade jednom i samo jednom za svaki program i internu sesiju.
- Blok obrade LOAD-OF-PROGRAM ima otprilike istu funkciju za an ABAP program tipa 1, M, F ili S kao konstruktor ima za klase u ABAP objektima
Inicijalizacija.
- Ovaj događaj se izvršava prije nego što se prikaže zaslon za odabir.
- Inicijalizacija svih vrijednosti.
- Možete dodijeliti različite vrijednosti osim zadanih vrijednosti na zaslonu za odabir.
- Zaslon za odabir možete ispuniti nekim vrijednostima tijekom izvođenja.
Na zaslonu za odabir.
- Događaj se obrađuje kada se obradi zaslon za odabir (na kraju PAI-a).
- Validacija i provjere unesenih vrijednosti odvijaju se ovdje
Početak odabira.
- Ovdje program počinje birati vrijednosti iz tablica.
Kraj odabira.
- Nakon što su svi podaci odabrani, ovaj događaj ispisuje podatke na ekran.
Interaktivni događaji
- Koristi se za interaktivno izvješćivanje. Koristi se za izradu detaljnog popisa iz osnovnog popisa.
💡 Savjet: Izjave napisane bez ključne riječi događaja prema zadanim postavkama pripadaju START-OF-SELECTION, zbog čega se izvješće i dalje izvršava kada događaj nedostaje.
Primjer: Jednostavan ABAP program za izvještavanje
Program u nastavku spaja dodavanja, zaslon za odabir i događaje u jedno radno izvješće. Čita zaglavlja prodajnih naloga iz VBAK-a za brojeve unesene na zaslonu za odabir i zapisuje ih kao popis.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
Vrijedno je napomenuti tri detalja. INICIJALIZACIJA ispunjava parametar datuma prije nego što se pojavi zaslon za odabir. AT SELECTION-SCREEN potvrđuje unos i podiže poruku iz klase ZSD. HIDE pohranjuje redoslijedni broj svakog zapisanog retka, tako da dvostruki klik može iz njega izgraditi sekundarni popis, što je tema sljedećeg odjeljka.
Oblikovanje izvješća
ABAP omogućuje formatiranje izvješća kako to korisnik želi. Na primjer, "Zamjenski redovi" moraju se pojaviti u različitim bojama, a redak "Ukupno" treba se pojaviti u žutoj boji.
Sintaksa
Format Color n Format Color n Intensified On
n može odgovarati različitim brojevima
Imajte na umu da uz format postoje i drugi dodaci
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Interaktivno programiranje izvješća
- Korištenjem interaktivnog programiranja korisnici mogu aktivno kontrolirati dohvaćanje podataka i prikaz podataka
- Koristi se za stvaranje detaljnog popisa iz vrlo osnovnog popisa
- Detaljni podaci zapisani su na sekundarnom popisu.
- Sekundarni popis može potpuno prekriti prvi zaslon ili ga se može prikazati na novom zaslonu
- Sekundarne liste same po sebi mogu biti interaktivne.
- Prvi popis također može nazvati transakciju.
- Postoje različiti događaji povezani s interaktivnim programiranjem.
Neke naredbe koje se koriste za interaktivno programiranje
Hotspot
Ako se mišem povuče preko podataka prikazanih u izvješću, kursor se mijenja u ruku s ispruženim kažiprstom. Hotspot se može postići pomoću naredbe FORMAT.
Syntax: Format Hotspot On (Off).
sakriti
Ova naredba vam pomaže da pohranite nazive polja na temelju kojih će se vršiti daljnja obrada da biste dobili detaljan popis. Piše se neposredno nakon naredbe WRITE za polje. Kada je red odabran, vrijednosti se automatski popunjavaju u varijablama za daljnju upotrebu.
Syntax: Hide <field-name>.
Izvješća koja čitaju više tablica mogu zamijeniti svoje SELECT naredbe logičkom bazom podataka, opisanom u nastavku.
Logičke baze podataka
- Umjesto korištenja upita "Odaberi" možete koristiti logičku bazu podataka za dohvaćanje podataka za program.
- Logičke baze podataka nastaju transakcijom SE36
- Naziv logičke baze podataka može imati do 20 znakova. Može započeti prefiksom prostora imena.
- Podatke odabire drugi program, a podacima se može pristupiti korištenjem GET-a naredba koja smješta podatke u radno područje .
Prednosti logičke baze podataka u odnosu na normalne Select upite.
- Nudi uvjete provjere da se vidi je li unos točan, potpun i uvjerljiv
- Sadrži središnje provjere autorizacije za pristup bazi podataka
- Poboljšanja poput poboljšanja performansi odmah se primjenjuju na sva izvješća koja koriste logičku bazu podataka.
Napomena: Zbog složenosti uključenih, logičke baze podataka se ne koriste u većini slučajeva
