28
ELTE SAP Excellence Center Oktatóanyag 1

ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

  • Upload
    ngonhi

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 1

Page 2: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 2

Page 3: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 3

Page 4: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

A felhasználók három különböző képernyővel találkoznak

ELTE SAP Excellence Center Oktatóanyag 4

•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.)

Page 5: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 5

Page 6: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 6

Page 7: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 7

Page 8: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 8

Page 9: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 9

Page 10: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

A szelekciós képernyő feladata, hogy a felhasználó számára olyan beviteli

ELTE SAP Excellence Center Oktatóanyag 10

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.

Page 11: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

A SELECT-OPTIONS <név> FOR <adatobjektum> utasítással szelekciós opciótdefiniálhatunk: A szelekciós képen alapesetben két – az adatobjektummal megegyező

ELTE SAP Excellence Center Oktatóanyag 11

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 komplexkorlá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áskulcsszó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.

Page 12: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

Esemény blokkok, modularizálás.

ELTE SAP Excellence Center Oktatóanyag 12

Végrehajtható programban elegendő, ha egy PARAMETERS- vagy SELECT-OPTIONS-utasítást programozunk, melyek hatására az ABAP-futá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.

Page 13: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

*&---------------------------------------------------------------------*

*& Report ZELTE_ESEMENY_PELDA

ELTE SAP Excellence Center Oktatóanyag 13

*&

*&---------------------------------------------------------------------*

*& 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

Page 14: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

START-OF-SELECTION.

*begin start-of-selection.

ELTE SAP Excellence Center Oktatóanyag 14

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.

Page 15: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 15

Page 16: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

Ha egy standard szelekciós képernyőhöz kiegészítő beviteli ellenőrzést

ELTE SAP Excellence Center Oktatóanyag 16

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.

Page 17: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

REPORT zelte_szelekcios_kep.

ELTE SAP Excellence Center Oktatóanyag 17

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.

Page 18: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

*&---------------------------------------------------------------------**& Report Z_ADEEC1

ELTE SAP Excellence Center Oktatóanyag 18

*& 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_OSZTINTO sv_osztalyWHERE 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_szemelyWHERE 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.

Page 19: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 19

Page 20: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 20

Page 21: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 21

Page 22: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

SE11 / Adattábla Módosítás �

ELTE SAP Excellence Center Oktatóanyag 22

Page 23: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 23

Page 24: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

SE91

ELTE SAP Excellence Center Oktatóanyag 24

Page 25: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

A WITH paraméterrel nevezhetjük meg a változók értékét (legfeljebb négyet).

ELTE SAP Excellence Center Oktatóanyag 25

Itt megadhatunk mezőket vagy literálokat, ahol a változó i. mezőjehelyettesíti majd az üzenet &i változóját. Ha az üzeneten belüli változókatcsak & vagy $ jelekkel szerepeltetjük, a rendszer ezeket a Message-utasításban megadott mezők sorrendjének értelmében tölti majd fel.

Page 26: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

Üzenetet hatféleképpen minősíthetünk: A, X, E, I, S vagy W. Jelentéseik:

ELTE SAP Excellence Center Oktatóanyag 26

•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 kelljaví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).

Page 27: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

ELTE SAP Excellence Center Oktatóanyag 27

Page 28: ELTE SAP Excellence Center Oktatóanyag 1sap.elte.hu/sap_abap/ABAP-06.pdf · A szelekciós képerny ő feladata, hogy a felhasználó számára olyan beviteli ELTE SAP Excellence

REPORT Z01_SELEKCIOS_KEP.

ELTE SAP Excellence Center Oktatóanyag 28

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.