ELTE SAP Excellence Center Oktatóanyag 1
ELTE SAP Excellence Center Oktatóanyag 2
ELTE SAP Excellence Center Oktatóanyag 3
A felhasználók három különböző képernyővel találkoznak Listák az adatmegjelenítéshez (ALV, Write típusú) Szelekciós képernyők a program lefutásához szükséges bemeneti adatok beállításához, szűréséhez Dynpro, ami nem más mint programozott képernyő képek. Magukban foglalják a menüsort, funkciós gombokat, valamint a munkaterületen lévő különböző funkciós elemeket (gombok, legördülő menük, beviteli mezők, stb.) ELTE SAP Excellence Center Oktatóanyag 4
ELTE SAP Excellence Center Oktatóanyag 5
ELTE SAP Excellence Center Oktatóanyag 6
ELTE SAP Excellence Center Oktatóanyag 7
ELTE SAP Excellence Center Oktatóanyag 8
ELTE SAP Excellence Center Oktatóanyag 9
A szelekciós képernyő feladata, hogy a felhasználó számára olyan beviteli maszkot bocsásson rendelkezésre, melynek segítségével az adatbázisról olvasandó adatmennyiség korlátozható. A felhasználó, kitölthet egyedi mezőket megadhat intervallumokat, műveleteket, amik szerint szűr betölthet egy elmentett változatot kitöltött szelekciós képeknek (Ugrás -> Változatok) A rendszer gondoskodik a típusellenőrzésről: ha a bevitt érték nem felel meg a várt típusnak, automatikusan hibaüzenet jelenik meg, és a mező ismét bevitelre készen rendelkezésre áll. Értéksegítségek, ill. keresési segítségek az F4 funkcióbillentyűvel vagy a nyomógomb megnyomásával érhetőek el A felhasználó részére könnyen érthető szelekciós szövegeket is adhatunk, melyek a megfelelő beviteli mező előtt a bejelentkezési nyelven jelennek meg. ELTE SAP Excellence Center Oktatóanyag 10
A SELECT-OPTIONS <név> FOR <adatobjektum> utasítással szelekciós opciót definiálhatunk: A szelekciós képen alapesetben két az adatobjektummal megegyező típusú beviteli mező jelenik meg, intervallumhatárok megadására vagy komplex korlátozáshoz. Programon belüli adatobjektumként négy oszlopból álló belső tábla (<név>) kerül deklarálásra: sign ahhoz az információhoz, hogy az érték vagy az intervallum szelektálásra, vagy a szelekcióból kizárásra kerüljön-e. option az operátorhoz: a lehetséges operátorok listáját a SELECT-OPTIONS utasítás kulcsszódefiníciójában található. low az intervallum alsó határához vagy egyedi értékhez high az intervallum felső határához Bemenő adatok megadásához: A 'PARAMETERS <név> TYPE <típus>' ill. 'PARAMETERS <név> LIKE <adatobjektum dictionary-típus> ' utasítással a rendszer elemi beviteli mezőt hoz létre a szelekciós képen, és egy ugyanolyan típusú <név> adatobjektumot deklarál. ELTE SAP Excellence Center Oktatóanyag 11
Esemény blokkok, modularizálás. Végrehajtható programban elegendő, ha egy PARAMETERS- vagy SELECT- OPTIONS-utasítást programozunk, melyek hatására az ABAPfutásidőrendszer standard szelekciós képernyőt bocsájt a rendelkezésünkre. A szelekciós képernyő az INITIALIZATION eseményblokkot követően kerül végrehajtásra. Érték beállítások hajtódnak végre. A szelekciós képernyőhöz tartozik az AT SELECTION-SCREEN eseményblok. Miután a szelekciós képernyő a végrehajtás paranccsal lezárásra került, a futásidőrendszer fehívja a START-OF-SELECTION eseményblokkot. ELTE SAP Excellence Center Oktatóanyag 12
*&---------------------------------------------------------------------* *& Report ZELTE_ESEMENY_PELDA *& *&---------------------------------------------------------------------* *& 05_01-Példaprogram Szelekciós képernyő eseményeinek bemutatására *& *&---------------------------------------------------------------------* REPORT ZELTE_ESEMENY_PELDA LINE-COUNT 10(1). TABLES: zelte_szem. DATA: BEGIN OF t_report OCCURS 3, veznev LIKE zelte_szem-vezeteknev, kernev LIKE zelte_szem-keresztnev, END OF t_report. *begin selection screen PARAMETERS p_datum LIKE sy-datum. PARAMETERS p_check AS CHECKBOX. *end selection screen INITIALIZATION. *begin initialization MOVE sy-datum TO p_datum. *end initialization AT SELECTION-SCREEN. *begin at selection-screen MESSAGE I888(sabapdocu) WITH 'At selection-screen'. IF p_check = 'X'. MESSAGE E888(sabapdocu) WITH 'Clear checkbox'. ENDIF. *end at selection-screen AT SELECTION-SCREEN OUTPUT. *begin at selection-screen output MESSAGE I888(sabapdocu) WITH 'At selection-screen output'. *end at selection-screen output ELTE SAP Excellence Center Oktatóanyag 13
START-OF-SELECTION. *begin start-of-selection. MESSAGE I888(sabapdocu) WITH 'start-of-selection'. SELECT * FROM zelte_szem. MOVE zelte_szem-vezeteknev TO t_report-veznev. MOVE zelte_szem-keresztnev TO t_report-kernev. APPEND t_report. ENDSELECT. *end start-of-selection. END-OF-SELECTION. *begin end-of-selection. MESSAGE I888(sabapdocu) WITH 'end-of-selection'. FORMAT COLOR col_normal. DO 30 TIMES. LOOP AT t_report. WRITE / t_report-veznev. WRITE t_report-kernev. ENDLOOP. ENDDO. *end end-of-selection. TOP-OF-PAGE. FORMAT COLOR col_heading. WRITE 'Ez a fejléc'. END-OF-PAGE. FORMAT COLOR col_total. WRITE 'Ez a lábléc'. AT LINE-SELECTION. WRITE: / 'Cursor Row:', sy-curow. WRITE: / 'Cursor Col:', sy-cucol. ELTE SAP Excellence Center Oktatóanyag 14
ELTE SAP Excellence Center Oktatóanyag 15
Ha egy standard szelekciós képernyőhöz kiegészítő beviteli ellenőrzést szeretnénk programozni, az AT SELECTION-SCREEN eseményblokk áll rendelkezésünkre erre a célra. Az AT SELECTION-SCREEN eseményblokk valamennyi felhasználói műveletnél feldolgozásra kerül. Egy kiváltott hibadialógus esetén a rendszer visszaugrik a szelekciós képre, és az összes beviteli mezőt bevitelre készen ismét rendelkezésre bocsájtja. ELTE SAP Excellence Center Oktatóanyag 16
REPORT zelte_szelekcios_kep. DATA: wa_oszt TYPE zelte_oszt. PARAMETERS: pa_azon LIKE wa_oszt-oszt_azon. INITIALIZATION. pa_azon = '0000000005'. START-OF-SELECTION. WRITE:/ zelte_oszt-oszt_azon, zelte_oszt-oszt_nev. ELTE SAP Excellence Center Oktatóanyag 17
*&---------------------------------------------------------------------* *& Report Z_ADEEC1 *& Készítő: Tarcsi Ádám *&---------------------------------------------------------------------* *& *& Változat v1: 2008.06.04. *&---------------------------------------------------------------------* REPORT z_adeec1. PARAMETERS p_oszt TYPE ZELTE_OSZT. DATA: sv_osztaly TYPE ZELTE_OSZT, sv_szemely TYPE ZELTE_SZEM. SELECT SINGLE * FROM ZELTE_OSZT INTO sv_osztaly WHERE OSZT_AZON = p_oszt. IF sy-subrc EQ 0. NEW-LINE. WRITE: 'A(z)', sv_osztaly-oszt_nev, 'osztályon dolgozók adatai:'. SELECT * FROM ZELTE_SZEM INTO sv_szemely WHERE OSZTALY = sv_osztaly-oszt_azon. WRITE: sv_szemely-szem_azon, sv_szemely-titulus, sv_szemely-vezeteknev, sv_szemely-keresztnev, sv_szemely-osztaly, sv_szemely-fizetes, sv_szemely-penznem, sv_szemely-szul_ido, sv_szemely-telepules, sv_szemely-cim, sv_szemely-telefon, sv_szemely-email. ENDSELECT. ELSE. WRITE: 'Nem találtam a szelekciónak megfelelő osztályt!'. ENDIF. ELTE SAP Excellence Center Oktatóanyag 18
ELTE SAP Excellence Center Oktatóanyag 19
ELTE SAP Excellence Center Oktatóanyag 20
ELTE SAP Excellence Center Oktatóanyag 21
SE11 / Adattábla Módosítás ELTE SAP Excellence Center Oktatóanyag 22
ELTE SAP Excellence Center Oktatóanyag 23
SE91 ELTE SAP Excellence Center Oktatóanyag 24
A WITH paraméterrel nevezhetjük meg a változók értékét (legfeljebb négyet). Itt megadhatunk mezőket vagy literálokat, ahol a változó i. mezője helyettesíti majd az üzenet &i változóját. Ha az üzeneten belüli változókat csak & vagy $ jelekkel szerepeltetjük, a rendszer ezeket a Messageutasításban megadott mezők sorrendjének értelmében tölti majd fel. ELTE SAP Excellence Center Oktatóanyag 25
Üzenetet hatféleképpen minősíthetünk: A, X, E, I, S vagy W. Jelentéseik: A megszakítás a feldolgozás megszakad, a felhasználónak újra kell indítani a tranzakciót X kilépés mint az A -üzenetfajta, de MESSAGE_TYPE_X rövid-dumppal E hiba a feldolgozás megszakad, a felhasználónak ki kell javítania a bevitelt. W figyelmeztetés a feldolgozás megszakad, a felhasználó megismételheti a bevitelt (hatás mint az E -üzenetnél), de jóváhagyja azt az ENTER-gombbal (hatás mint az I -üzenetnél) I információ a feldolgozás megszakad, a felhasználó az ENTER-gombbal folytathatja a feldolgozást. S siker információ a következő képernyőn Annak érdekében, hogy az E és W -típusú üzeneteknél a szelekciós képernyő ismét bevitelre kész állapotba kerülhessen, ezeket az üzeneteket az AT SELECTION-SCREEN esemény során célszerű megjeleníteni. Ezek az üzenetfajták a következő képernyők valamelyikén A -üzenetként viselkednek (pl. a START-OF-SELECTION, GET vagy END-OF-SELECTION). ELTE SAP Excellence Center Oktatóanyag 26
ELTE SAP Excellence Center Oktatóanyag 27
REPORT Z01_SELEKCIOS_KEP. TABLES: zelte_oszt, zelte_szem. DATA wa_oszt type zelte_oszt. SELECT-OPTIONS: osztaly FOR wa_oszt-oszt_azon MATCHCODE OBJECT zelte_oszt. PARAMETERS pa_azon LIKE zelte_oszt-oszt_azon. START-OF-SELECTION. SELECT oszt_azon oszt_nev FROM zelte_oszt INTO CORRESPONDING FIELDS OF wa_oszt WHERE oszt_azon IN osztaly. WRITE: / wa_oszt-oszt_azon, wa_oszt-oszt_nev. ENDSELECT. --------------- SELECT * FROM zelte_oszt INTO wa_oszt WHERE oszt_azon = pa_azon. WRITE wa_oszt-oszt_nev. ENDSELECT. if sy-subrc <> 0. MESSAGE i001(zelte) with pa_azon. endif. ELTE SAP Excellence Center Oktatóanyag 28