1 / 31

PTE Természettudományi Kar Programtervező- és GazdaságInformatikus Szak

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 04. Előadás Vaspöri Gábor SAP fejlesztő Tel : 30 /510-6351 E-mail: vaspori.gabor@gmail.com Skype: vaspori.gabor. Tartalom. Ismétlés Listák

Télécharger la présentation

PTE Természettudományi Kar Programtervező- és GazdaságInformatikus Szak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 04. Előadás Vaspöri Gábor SAP fejlesztő Tel: 30/510-6351 E-mail: vaspori.gabor@gmail.com Skype: vaspori.gabor

  2. Tartalom • Ismétlés • Listák • Lista parancsok • Többnyelvű listák • Házi feladat • ALV • Alapok • Mezőkatalógus • ALV_GRID vs. ALV_LIST

  3. Ismétlés • 001 • Cache, nyelvválasztás • Saját adatok, variáns • SE80 beállítások • Debugger, pretty printer, etc. • SE11 – SE16 • SE37 – SE24 • 002 • Név konvenció • SY-mezők • Queryk • Debugger használata • 003 • PARAMETERS • SELECT-OPTIONS • Default, memory id, lower case, obligatory, no-extensions • SC block, commetn, pushbutton • Események • Load-of-program, init, start-of-selection, end-of-selection • At user command, at selection-screen output • Szövegelemek

  4. Program típusok • Riportprogramozás • Futtatható alkalmazások • Klasszikus megjelenítés • Dialógusprogramozás • Komplett alkalmazások • Tranzakciók • Interakciók a felhasználókkal • Webprogramozás • Business-Server-Pages • Webdynpro-Anwendungen

  5. Riportprogramozás/1

  6. Riportprogramozás/2

  7. Dialógus programozás

  8. Listák • ABAP-programban az első WRITE-utasítás váltja ki a lista létrehozását. • A REPORT-utasítás LINE-SIZE <s> és LINE-COUNT <m>kiegészítéseivel globálisan meghatározható a listaoldalak oszlop- és sorszáma.

  9. Lista parancsok/1 • Listákon használható utasítások • WRITE • Kimentre kerülnek az utasítás mögött felsorolt szövegszimbólumok, karaktersorozatok. A ’/’ jellel soremelés hajtható végre. • MESSAGE • Az üzenetosztályokat a SE91-es tranzakción belül tudjuk megtekinteni/módosítani. • Az üzenetazonosító az üzenetosztályon belül 3 számjeggyel megjelölt egyedi üzenetet. • Típusok • ’E’: hibaüzenet • ’W’: figyelmeztető üzenet • ’S’: üzenet zöld jelzéssel • ’I’: üzenetablak ugrik fel

  10. Lista parancsok/2 • FORMAT COLORSzínezi lehet a WRITE utasítás által kiíratott szöveget. FORMAT COLOR OFF-fal a színezés véget ér. • Példa: • FORMAT COLOR 4. • WRITE: 'Ez színes.'. • FORMAT COLOR OFF. • Színek számai például: • 1: kék • 2: világosszürke • 3: sárga • 4: sötétszürke • 5: zöld • 6: piros • 7: okkersárga • NEW-LINEÚj sor, a WRITE-utasításban a "/" jelnek felel meg. • RESERVE <n> LINESHa egy lista felépítésekor az aktuális oldalon nincs hely legalább <n> sor számára, akkor lapdobásra kerül sor. • SKIP <n><n> sor kihagyása a listán

  11. Lista parancsok/3 • SKIP TO LINE <n> • Következő kivitel az n sorban (visszafelé pozicionálás is lehetséges). • BACK • RESERVE <n> LINES nélkül: • Visszaugrás az aktuális oldal első sorára a TOP-OF-PAGE után • RESERVE <n> LINES utasítással: Visszaugrás a RESERVE után kivitt első sorra • POSITION <n> • Következő kiviteli pozíció az aktuális sorban. • SET BLANK LINES ON/OFF • ON: Üres sorok kivitele, amelyek csak a szóközjelek kivitelével keletkeztek. • OFF: Üres sorok nem kerülnek kivitelre (standard beállítás). • A SKIP utasítással végrehajtott sok kihagyásokra nincs hatással.

  12. Többnyelvű listák • A szövegelemeket a rendszer nyelvfüggően külön tárolja. • Egy létrehozott szövegelemet le tudunk fordítani olyan nyelvekre, amik telepítve vannak az SAP szerverre. • A bejelentkezés nyelvén keresztül vezérelhető (SY-LANGU), hogy melyik nyelven jelennek meg a szövegelemek.

  13. Interaktív listák • Alaplista mellett maximum 20 elágazási lista • Trükk: Kattintásnál átállítani a rendszerváltozót 19-re. • Ugyanazok a funkciók elérhetők mint az alaplistánál • Navigáció • Egy lista szinttel visszalépni • Vissza (Zöld nyíl) • Megszakítás (Piros kereszt) • Szelekciós képhez visszalépni • Befejezés (sárga nyíl) • Események: • AT LINE SELECTION • Listán történő kattintáskor hívódik fel • AT USER-COMMAND • Felhasználói esemény váltja ki • TOP-OF-PAGE DURING LINE-SELECTION • Elágazási lista fejléce készíthető el vele

  14. Elágazási lista létrehozása/1

  15. Elágazási lista létrehozása/2 • Ha a felhasználó kiváltja a PICK funkciót, akkor a program átveszi a vezérlést, és végrehajtja az AT LINE-SELECTION interaktív eseményt. Az ezt követő összes kivitel (WRITE) elágazási listán kerül kivitelre. • Az SY-LSIND rendszermező megadja az aktuális listaszintet, és annak értékét mindig közvetlenül az AT LINE-SELECTION esemény végrehajtása előtt eggyel megnöveli. A listaszintek maximális száma 20-ra korlátozódik. • A CASE-utasítás a listarendszer felülről való korlátozására is felhasználható. A példában nem készül harmadik elágazási lista:Ha a 2. elágazási listánál kiváltásra kerül az AT LINE-SELECTION esemény, akkor az SY-LSIND értékét a rendszer ugyan 3-ra állítja, ezt azonban a CASE-utasítás nem veszi értékként figyelembe, így a rendszer nem hajtja végre a WRITE-utasítást. Ez azt jelenti, hogy nem jön létre elágazási lista. Ehelyett a rendszer az SY-LSIND-t újra 2-re állítja, és megjeleníti a 2. elágazási listát.

  16. Elágazási lista létrehozása/3

  17. HIDE Terület/1 • Az alaplista adatai elágazási listánál csak akkor állnak rendelkezésünkre, ha ezeket az adatokat pl. belső táblában pufferoltuk. Ha csak egy - a felhasználó által kiválasztott - sor információit szeretnénk megjeleníteni az elágazási listában, hivatkozást kell létrehoznunk a kiválasztott listasor és a belső tábla megfelelő sora között. Pontosan ezen követelmény leképezésére áll rendelkezésre a HIDE -technika. • A HIDE utasítással a mezőtartalmakra vonatkozó listasorok külön területen pufferolhatók. Ez esetben a rendszer a változónevet és az aktuális változótartalmat is tárolja. • A HIDE utasítással rendszerint kulcsmező-tartalmakat, vagy olyan információkat mentünk el, amelyek segítségével a későbbiekben a kiegészítő információkat ki tudjuk olvasni (SELECT ... WHERE .... ; READ TABLE). • Egy-egy listasor adatainak tárolásához a HIDE utasítást kell használni, mielőtt egy új sor elkezdődne, mivel az adatokat mindig az aktuális kiviteli sorral (SY-LILLI rendszermező) kapcsolatban tárolja a rendszer. • A HIDE-területre olyan mezőkis felvehetők, amelyek a listán nem jelennek meg. • Pl.: Z_PTTK_BLADE_04_1

  18. HIDE Terület/2

  19. HIDE Terület/3 • Hibás sorkiválasztás ellenőrzése • Fejléc, lábléc

  20. Elágazási listák feliratai • A TOP-OF-PAGE esemény csak az alaplista létrehozása során kerül kiváltásra. • Elágazási listák oldalainak fejlécét a TOP-OF-PAGE DURING LINE-SELECTION esemény felhasználásával hozhatjuk létre. • A TOP-OF-PAGE DURING LINE-SELECTION utasítás az első kivitel (pl. WRITE) alkalmával minden új listaoldalon kiváltásra kerül

  21. Lista létrehozása dialógusablakban/1 • A WINDOW STARTING AT utasítás hatására az aktuális elágazási lista egy modális dialógusablakban fog megjelenni. • A modális dialógusablak bal felső sarka a <c1> oszlop <r1> soránál található. A számolás a fő ablak bal felső sarkában található nulla/nulla pozíciónál kezdődik. Ha az <r1> kisebb vagy egyenlő nullánál, akkor a lista modális dialógusablak helyett a teljes képernyőn jelenik meg. • Az ENDING opcionális paraméterrel a modális dialógusablak szélessége és magassága vezérelhető. A jobb alsó sarok a <c2> oszlop <r2> sorába helyeződik. • Egy modális dialógusablak csak egyetlen nyomógombsort tartalmaz, vagyis nincs benne menü- és szimbólumsor.

  22. Lista létrehozása dialógusablakban/2

  23. Mezőkiválasztás/1 • A GET CURSOR utasítással lehetőség van elágazási listák - kurzorpozíciótól függő - létrehozására. Ha a felhasználó a fenti példában a CARRID-mezőre kattint, akkor megkapja a légitársaság nevét. Ha azonban az egyik CONNID-mezőre kattint, akkor az ehhez a járatcsatlakozáshoz tartozó összes járat-időpont jelenik meg. • A kiviteli mező nevét a FIELD paraméternél megadott mezőben bocsátja rendelkezésre a rendszer. A kiviteli érték a VALUE paraméternél megnevezett mezőben található. • A rendszer beállítja az SY-SUBRC visszatérési értéket: • '0' érték: a kurzor egy mezőn állt • '4' érték: a kurzor nem egy mezőn állt

  24. Mezőkiválasztás/2

  25. Interaktív listák rendszermezői • SY-LSIND az aktuális lista indexe; • SY-LISTI az utoljára megjelenített lista indexe; • SY-LILLI a megjelenített lista kiválasztott sorának abszolút száma; • SY-CPAGE a megjelenített lista legfelső oldalának száma; • SY-CUCOL a megjelenített lista azon oszlopának száma az ablakban, amelyben a kurzor utoljára állt; • SY-CUROW a megjelenített lista azon sorának száma az ablakban, amelyben a kurzor utoljára állt; • SY-STACO a megjelenített lista első megjelenített oszlopának száma; • SY-STAROa legfelső megjele-nített oldal (SY-CPAGE) első látható sorának száma (jelen esetben a feliratsorok nem számítanak); • SY-UCOMMaz a funkciókód, amely a megjelení-tett listán az interak-tív eseményt kivál- • totta.

  26. ALV • Adatok rendezett megjelenítése a képernyőn • A listás megjelenítés továbbfejlesztése • Alap funkciók • Rendezés, szűrés, exportálás, etc. • A belső rendszertábla tárolja (lvc_t_fcat) a megjelenítendő adatok tulajdonságait: • FIELDCATALOG • A mezőszimbólum létrehozása: • Automatikus (DDIC) • Manuális • Kettő keveréke

  27. Mezőkatalógus

  28. ALV létrehozása Funkciós modullal CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = ‘<program_neve>’ i_structure_name = ‘<struktúra_neve>' TABLES t_outtab = gt_tabla. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE ‘E’ NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. • Feladat: • Hozzunk létre programot, amely az SPFLI tábla adatait jeleníti meg ALV-ben.

  29. ALV GRID vs. ALV LIST • Lista készítés FM segítségével: • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY‘ • ALV grid készítés FM segítségével. • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' • Feladat: Az előző riportunkat bővítsük ki annyival, hogy először jelenjen meg egy szelekciós képernyő, ahol radio buttonok segítségével lehessen kiválasztani, hogy ALV_LIST-ként avagy ALV_GRID-ként szeretnénk a belső tábla tartalmát megjeleníteni. • Természetesen a LIST megjelenítési kódjának megírási is feladat.

  30. Házi feladat/1 • 1. Hozz létre egy programot, aminek a bemenő paramétere a CARRID, CONNID, FLDATE mindegyik az SFLIGHT táblából. • 2. Ezeknek megfelelően szelektáld a táblát egy belső táblába. • 3. A szelekciós képernyőn hozz létre egy blokkot, 4 radiobuttonnal: • - Manuális lista; Automatikus lista; Manuális ALV; Automatikus ALV • Tipp: • 1. Deklaráció • 2. Szelekciós képernyő • 3. START-OF-SELECTION. • PERFORM get_data. • PERFORM create_field_catalog. • 4. CASE parameter. • WHEN ''. • PERFORM man_list. • WHEN ''. • PERFORM au_list. • WHEN ''.

  31. Házi feladat/2 • Manuális lista • Hozz létre egy AT-LINE-SELECTION eseményt, ahol a megfelelő rendszerváltozóval kérdezd le, hogy milyen szintű listán kattintottál. • Alaplista esetén a GET_CURSOR parancs segítségével egy új listában jelenítsd meg a kattintott mező értékét (elég az első 3re vonatkozóan). • A további elágazási listák esetén hozz létre új listát, ahol az aktuálisan kattintott lista száma jelenjen meg (WRITE: 'A következő szinten állunk:' SY-listaszint) • Segítség a feladathoz: • Órán megoldott feladatok. • Órán bemutatott feladatok. (pl.: Z_PTTK_BLADE_04_4) • Google • Email: vaspori.gabor@gmail.com

More Related