SAP ABAP jelentés programozás
⚡ Okos összefoglaló
Az ABAP Report Programming futtatható programokat hoz létre, amelyek nagy mennyiségű adatot választanak ki, dolgoznak fel és jelenítenek meg. SAP adatok. Ez az oldal ismerteti a jelentésfejlécek hozzáadását, a kijelölőképernyőt, az eseménysorozatot, a formázási parancsokat, az interaktív listákat és a logikai adatbázisokat.

Mi az ABAP jelentésprogramozás?
SAP-Az ABAP kétféle programot támogat – Jelentéskészítő programokat és Párbeszédprogramokat. A Jelentéskészítő programokat akkor használják, ha nagy mennyiségű adatot kell megjeleníteni.
A jelentési programok célja/használata
- Akkor használják őket, amikor több táblázatból kell adatokat kiválasztani és feldolgozni a megjelenítés előtt.
- Akkor használják, amikor a jelentések speciális formátumot igényelnek
- Akkor használatos, ha a jelentést innen kell letölteni SAP egy Excel-lapra, amelyet szét kell osztani.
- Akkor használatos, ha a jelentést egy adott személynek kell elküldeni.
Fontos megjegyzések a jelentési programmal kapcsolatban
- A Jelentésprogramok mindig végrehajtható programok. A programtípus mindig 1.
- Minden jelentésprogram egy adott alkalmazástípusnak felel meg, pl. Sales & Distribution, FI – CO stb. lehet Cross Application is, azaz '*' típusú.
- A Report Programming egy eseményvezérelt programozás.
- A jelentésprogram első sora mindig a Jelentés .
- A lista fejlécének vagy a program nevének eltüntetéséhez a hozzáadást Nincs szabványos oldalfejléc használt.
- Egy adott jelentés sormérete a hozzáadás használatával állítható be vonal méretű .
- Egy adott oldal sorszáma az összeadás használatával állítható be sorszám n(n1). N az oldal sorainak száma, N1 pedig az oldal láblécéhez fenntartott sorok száma.
- Bármilyen információ vagy hibaüzenet megjelenítéséhez hozzáadunk egy üzenetosztályt a programhoz a következő kiegészítéssel: Üzenetazonosító . Az üzenetosztályokat az SE91 karbantartja.
Ezért egy ideális jelentési programnak a következővel kell kezdődnie:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Jelentéskészítő program vs. párbeszédkészítő program
Mindkét programtípus ugyanazon a rendszeren fut, mégis ellentétes problémákat oldanak meg. Egy jelentés beolvassa és megjeleníti az adatokat, míg egy párbeszédprogram lehetővé teszi a felhasználó számára, hogy képernyőkön keresztül kezelje azokat.
| Kritériumai | Jelentéskészítő program | Párbeszédprogram |
|---|---|---|
| Program típusa | 1. típus, futtatható | M típusú modulkészlet |
| Indította | Program neve vagy tranzakciókód | Csak egy tranzakciós kód |
| Flow control | Események, mint például az INICIALIZÁLÁS és a KIVÁLASZTÁS STARTJA | Képernyőáramlási logika PBO és PAI modulokkal |
| Felhasználói bevitel | Egy generált kiválasztási képernyő | A Screen-ben tervezett képernyők Painter |
| Tipikus felhasználás | Nagy adatmennyiségek megjelenítése és letöltése | Üzleti adatok létrehozása és módosítása |
A kiválasztó képernyő az a hely, ahol a jelentés összegyűjti a bemeneti adatokat, ezért ezt ismertetjük a következőkben.
Kiválasztás képernyő
A „kiválasztó képernyő” az a képernyő, ahol megadhatjuk azokat a bemeneti értékeket, amelyekre a programnak futnia kell.
A kiválasztási képernyőt általában a
- paraméterek
- Select-Options
Szintaxis
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 #>
paraméterek
A paraméterek segítenek a dinamikus kiválasztásban. A program végrehajtásának egy ciklusához csak egy értéket tudnak fogadni.
Szintaxis
Paraméterek meghatározása adattípusként
Parameters p_id(30) type c.
Paraméterek meghatározása, mint egy táblázat mező.
Parameter p_id like <table name>-<field name>.
A paraméterek lehetnek jelölőnégyzetek és rádiógombok is.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
A paraméterek listboxok lehetnek.
Parameter p_id like <table name>-<field name> as listbox
Válasszuk az Opciók lehetőséget
A Select-Option értéktartomány vagy értékkészlet bevitelére szolgál egy programba
Szintaxis
select-options s_vbeln for vbak-vbeln.
A képernyőképen láthatók a kiválasztási opció által generált alacsony és magas beviteli mezők, valamint a többszörös kijelölési gomb.
Kiválasztási opciót is megadhat, például változót
select-options s_vbeln for vbak-vbeln no intervals no-extension
Miután a program összegyűjtötte a bemeneti adatokat, egy előre meghatározott eseménysorozatra reagál.
Események az ABAP jelentési programban
Az ABAP jelentési programok olyanok rendezvényvezérelt programok. A jelentésprogramban szereplő különböző események a következők:
Programterhelés
- Kiváltja a kapcsolódó eseményt egy belső munkamenetben egy 1, M, F vagy S típusú program betöltése után.
- A kapcsolódó feldolgozási blokkot egyszer és csak egyszer futtatja le minden programhoz és belső munkamenethez.
- A LOAD-OF-PROGRAM feldolgozó blokknak nagyjából ugyanaz a funkciója egy ABAP program 1, M, F vagy S típusú, mint a konstruktor az ABAP objektumok osztályaihoz
Inicializálás.
- Ez az esemény a kiválasztási képernyő megjelenése előtt végrehajtódik.
- Az összes érték inicializálása.
- A kiválasztási képernyőn alapértelmezett értékektől eltérő értékeket is hozzárendelhet.
- A kiválasztási képernyőt kitöltheti bizonyos értékekkel futás közben.
A Kiválasztás képernyőn.
- Az esemény feldolgozása a kiválasztási képernyő feldolgozása után történik (a PAI végén).
- Itt történik a bevitt értékek érvényesítése és ellenőrzése
Kiválasztás kezdete.
- Itt a program elkezdi kiválasztani az értékeket a táblázatokból.
A kiválasztás vége.
- Az összes adat kiválasztása után ez az esemény kiírja az adatokat a képernyőre.
Interaktív események
- Interaktív jelentésekhez használják. Részletes lista létrehozására szolgál egy alaplistából.
💡 Tipp: Az esemény kulcsszó nélkül írt utasítások alapértelmezés szerint a START-OF-SELECTION csoportba tartoznak, ezért a jelentés akkor is lefut, ha az esemény hiányzik.
Példa: Egy egyszerű ABAP jelentéskészítő program
Az alábbi program egyetlen működő jelentésbe egyesíti a kiegészítéseket, a kiválasztó képernyőt és az eseményeket. A kiválasztó képernyőn megadott számokhoz tartozó értékesítési rendelések fejléceit olvassa be a VBAK-ból, és listaként írja ki azokat.
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.
Három részletet érdemes megjegyezni. Az INICIALIZATION (iniciálás) kitölti a date paramétert a kiválasztó képernyő megjelenése előtt. Az AT SELECTION-SCREEN (kiválasztási képernyő) érvényesíti a bejegyzést, és üzenetet küld a ZSD osztályból. A HIDE (elrejtés) tárolja az egyes kiírt sorok sorszámát, így dupla kattintással egy másodlagos lista építhető fel belőle, amely a következő szakasz témája.
A jelentés formázása
Az ABAP lehetővé teszi a jelentések formátumát a felhasználó által kívánt módon. Például az „Alternatív soroknak” különböző színekkel, az „Összesen” sornak pedig sárgával kell megjelennie.
Szintaxis
Format Color n Format Color n Intensified On
n különböző számoknak felelhet meg
Felhívjuk figyelmét, hogy a formátum mellett más kiegészítések is vannak
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Interaktív jelentés programozás
- Az interaktív programozás segítségével a felhasználók aktívan vezérelhetik az adatok lekérését és megjelenítését.
- Egy nagyon alapvető listából részletes lista létrehozására szolgál
- A részletes adatok egy másodlagos listán vannak felírva.
- A másodlagos lista vagy teljesen átfedheti az első képernyőt, vagy megjelenítheti egy új képernyőn
- A másodlagos listák maguk is interaktívak lehetnek.
- Az első lista tranzakciót is hívhat.
- Az interaktív programozáshoz különféle események kapcsolódnak.
Néhány interaktív programozáshoz használt parancs
Hotspot
Ha az egeret a jelentésben megjelenített adatok fölé húzzuk, a kurzor Kinyújtott mutatóujjjal rendelkező kézre változik. Hotspot a FORMAT utasítással érhető el.
Syntax: Format Hotspot On (Off).
elrejt
Ez a parancs segít a mezőnevek eltárolásában, amelyek alapján a további feldolgozást elvégezve részletes listát kaphat. Közvetlenül a mező WRITE utasítása után íródik. Egy sor kiválasztásakor az értékek automatikusan kitöltődnek a változókban további felhasználás céljából.
Syntax: Hide <field-name>.
A sok táblát olvasó jelentések a SELECT utasításaikat egy logikai adatbázissal helyettesíthetik, az alábbiakban leírtak szerint.
Logikai adatbázisok
- A „Select” lekérdezések használata helyett logikai adatbázist is használhat a program adatainak lekéréséhez.
- A logikai adatbázisok tranzakcióval jönnek létre SE36
- Egy logikai adatbázis neve legfeljebb 20 karakter hosszú lehet. Kezdődhet egy névtér előtaggal.
- Az adatokat egy másik program választja ki, és az adatokhoz a GET segítségével lehet hozzáférni parancs, amely az adatokat a munkaterületre helyezi .
A logikai adatbázis előnyei a normál Select lekérdezésekkel szemben.
- Ellenőrzési feltételeket kínál annak megállapítására, hogy a bemenet helyes, teljes és elfogadható-e
- Központi jogosultság-ellenőrzéseket tartalmaz az adatbázis-hozzáféréshez
- Az olyan fejlesztések, mint például a teljesítmény javítása, azonnal vonatkoznak minden logikai adatbázist használó jelentésre.
Megjegyzés: A felmerülő bonyolultság miatt a legtöbb esetben nem használnak logikai adatbázisokat
