190 likes | 331 Views
PTE Természettudományi Kar Programtervező- és GazdaságInformatikus Szak 7624 Pécs, Ifjúság u. 6. http://www.ttk.pte.hu/. SAP-ABAP2 03. Előadás Vaspöri Gábor SAP fejlesztő Tel : 30 /510-6351 E-mail: vaspori.gabor@gmail.com Skype: vaspori.gabor. Tartalom.
E N D
PTE Természettudományi Kar Programtervező- és GazdaságInformatikus Szak 7624 Pécs, Ifjúság u. 6. http://www.ttk.pte.hu/ SAP-ABAP2 03. Előadás Vaspöri Gábor SAP fejlesztő Tel: 30/510-6351 E-mail: vaspori.gabor@gmail.com Skype: vaspori.gabor
Tartalom • Szelekciós képernyő programozása • PARAMETERS • SELECT-OPTIONS • Egyéb SC parancsok • Események • Beviteli ellenőrzés • Lefutási logika • SC módosítás • Szövegelemek • Házi feladat
Parameters/1 • Felhasználó és program közti interfész, amivel a riport futását befolyásolhatjuk • PARAMETERS, SELECTION-OPTIONS parancsok • Egy programhoz több SC is lehet (SC-hez variáns!) • PARAMETERS használata • TYPE, vagy LIKE utasítással deklarálható • Neve maximum 8 karakter hosszú lehet • Kiegészítők: • DEFAULT <érték> • MEMORY ID <pid> • SAP memory SET/GET utasításával érhető el • Pl.: Saját adatok • OBLIGATORY • Kötelezően kitöltendő mezők • AS CHECKBOX • Értéke: ‘ ‘ vagy ‘X’
Parameters/2 • RADIOBUTTON GROUP <grp> • Csoportnév max 4 karakter • Csak 1 lehet kijelölt • Plusz pont!!! • Mi a különbség deklaráláskor a TYPE és a LIKE parancs között??? (www.google.com sy-langu->HU || EN || DE )
Select-options/1 • Összetett szelekció • <seltab> típusú belső tábla • Sign • Option • Low • High • Név max 8 karakter • TYPELIKE helyettFOR utasítás • Példa kód (Werk)Z_PTTK_BLADE • _01_1 • SIGN: • I (Include), • E (Exclude) • OPTION: EQ, NE, LE, LT, GE, GT, BT(Between), NB (Not betw), • CP (Contains Pattern), NP (Contains Pattern not).
Select-options/2 • Használatához TABLES utasítás kellene, DE: • TABLES * ... (Obsolete) helyett DATA gs_... TYPE ... • Példa kód (Z_PTTK_BLADE_03_2) • Kiegészítések • DEFAULT • Seltab-Low (egyedi érték) • Seltab-Low + Seltab-High (intervallum) • Sign( default: I – Intern), Option(default: EQ - Equal) • Pl. DEFAULT <val1> TO <val2> OPTION <xx> SIGN<x> • MEMORY ID <pid> • Az érték a Seltab-Low érték helyére kerül • SAP memory SET/GET utasításával érhető el • Pl.: Saját adatok • LOWER CASE • Kikapcsolhatjuk vele a bevitt adatok nagybetűre konvert. • DDIC-nél ez nem működik • OBLIGATORY • Kötelezően megadandó mező (Jele: „?”) • NO-EXTENSION • Többszörös szelekció lehetőségének kivétele
Select-options/3 • NO INTERVALS (Nincs kötőjel!) • Intervallum (felső értékének) kikapcsolása • Többszörös szelekciósegítségével továbbra is megadható intervallum: • Példa (<”Felső korlát” >=„Alsó korlát”) • MATCHCODE • Keresési segítség SO-hoz való kapcsolása (F4)
Szelekciós képernyő/1 • SELECTION-SCREEN • Utasítással vezérelhető a szelekciós képernyő • BEGIN/END OF BLOCK<blokk>. • Blokkok hozhatók létre az összetartozó adatoknak • WITH FRAME: Keret létrehozása • TITLE: Kereten megjelenő szöveg • Egymásba ágyazhatóak a blokkok (max. 5) • SELECTION-SCREEN SKIP n. • n sort kihagy a szelekciós képernyőn
Szelekciós képernyő/2 • SELECTION-SCREEN BEGIN/END OF LINE • Segítségével egy sorba több paraméter/megjegyzés is felvehető • COMMENT • Komment létrehozása • Meg kell adni a kezdőpozíciót, és a kiviteli hosszt is • COMMENT ... FOR FIELD <f> • Paraméterhez köthető komment • POSITION <pos> • Segítségével egy adott soron belül a következő kivitel helyére pozícionálhatjuk a kurzort • csak a ...BEGIN OF LINE ... END OF LINE blokkon belül használható • SELECTION-SCREEN PUSHBUTTON 1(10) text-100 USER-COMMAND push1. • Nyomógomb elhelyezése • Text-100 -> Megjelenő szöveg, push1 -> Kiváltott esemény
Események/1 • INITIALIZATION • Egy végrehajtható programban csak egyszer kerül feldolgozásra, a szelekciós képernyő megjelenítése előtt. • AT SELECTION-SCREEN OUTPUT • Itt is végre lehetne hajtani az inicializációt • SC PBO (Process Before Output) időpontja (rajz) • Ami többször is felhívódik • Itt hajtjuk végre a dinamikus képernyő módosítást • LOOP AT SCREEN – Ezzel futásidőben változtatjuk az SC-t • Példa kód Z_PTTK_BLADE_03_3
Események/2 • Változók, struktúrák deklarálás • Szelekciós képernyő kialakítás • Iniciális PARAMETERS, SELECT-OPTION értékek megadása • START-OF-SELECTION, ami mindig van, akár kiírjuk akár nem. • End of selection, hol felhívjuk az „end_of_day” szubrutint
Beviteli ellenőrzések/1 • AT SELECTION-SCREEN • Hibadialógusok kezelése • SC PAI (Process After Input) időpontja • Hiba esetén (MESSAGE Exxx vagy MESSAGE Wxxx) az összes mezőt ismét bevitelre készre állítja a rendszer • AT SELECTION-SCREEN ON <par> ill. ON <sel> • Hiba esetén csak az adott részt helyezi bevitelre kész állapotba a rendszer • AT SELECTION-SCREEN ON BLOCK <blokk> • Egy-egy logikai csoport beviteli kombinációinak ellenőrzése
Beviteli ellenőrzések/2 • AT SELECTION SCREEN ON RADIOBUTTON GROUP <radi> • Rádiógomb esetén fut le • AT SELECTION-SCREEN ON END OF <mező> • Többszörös szelekciók PAI modulja • AT SELECTION SCREEN ON EXIT-COMMAND • Program befejezésekor fut le • AT SELECTION SCREEN ON {HELP-REQUEST|VALUE-REQUEST} FOR <par>|<sel> • Keresési segítség (F4), Leírás meghívása
Lefutási logika (riport) • LOAD-OF-PROGRAM • INITIALIZATION • Szelekciós képernyő (ha van deklarálva) • Szelekciós képernyőhöz tartozó események • START-OF-SELECTION • Ha ez a eseménykulcsszó hiányzik akkor a további (nem eseményhez tartozó) kódot úgy értelmezi mintha ebben lenne • END-OF-SELECTION • TOP-OF-PAGE • Ha oldalváltás következik be (manuális, vagy automatikus) • (pl.: Van egy hosszú lista, és nem fér ki 1 oldalra) • AT USER-COMMAND • Felhasználói eseménykor (nyomógomb, duplakatt, etc.)
Szelekciós képernyő módosítása • AT SELECTION-SCREEN OUTPUT • Mező kikeresése a SCREEN táblában • Screen-mező • Active, stb. stb. • Modify screen • Az átállított érték feltöltése • Mező eltüntetése:Adott mező „Active” értékének ‘0’-ra állítása • Példa kód Z_PTTK_BLADE_03_4
Szövegelemek • Feliratok létrehozására • Szelekciós opciók kiírására • Szinte bármilyen (RÖVID) szöveges elemhez • Legnagyobb előnye, hogy szinte a program minden részén elérhető • Továbbá többnyelvű! • Használat: • Text-s00 • Duplakattintás • Szöveg beírása • A szelekciós képernyő elemei is elérhetők • Természetesen ezt is aktiválni kell
Szövegelemek fordítása • Ugrás -> Fordítás • Nyelv megadása • Dupla kattintás • Majd a fordítás
Házi feladat/1 • Hozzunk létre egy programot: Z_TTK_Felh_03_01 • Hozzunk létre egy szelekciós képet, ami így nézzen ki: • A szövegelemeket fordítsuk le angolra is! (Hogy hogyan, lásd a 24-es dián!!!) • Szelekciós opció: • S_CAR típusa az SPFLI-CARRID mezője, kötelező mező • S_CON típusa az SPFLI-CONNID mezője • Paraméter: • P_DATUM ami egyszerű dátum típusú mező(Iniciális érték: 03.11.2009) • A légitársaság alapértelmezetten ‘LH’ legyen.
Házi feladat/2 • Az előző szelekciós képernyőt alakítsuk át: • A dátum paraméter alakítsátok szelekciós opcióvá • Neve: S_FLDATE • Típusa az SFLIGHT-FLDATE mezője • Jelenítsétek és rejtsétek el egy checkbox állítgatásával • Neve: p_datum • Típusa: C • Elrejtés SCREEN-active: 0/1