ABAP-underskærme Selvstudium: Kald underskærm ind SAP
Før du læser denne vejledning, skal du sikre dig, hvad et dialogprogram er ...
OPKALD UNDERSKÆRM
- En underskærm er en uafhængig skærm, der vises i et område på en anden ("hoved") skærm.
- Underskærme giver dig mulighed for at integrere en skærm i en anden under kørsel. Du kan inkludere flere underskærme på hovedskærmen.
- Udtrykket underskærm gælder både for den skærm, du integrerer, og det område på hovedskærmen, hvor du placerer den. Denne vejledning handler om underskærmsområder. De faktiske skærmbilleder, der er oprettet gennem SE51-transaktionen, kaldes underskærmsskærme, hvis de er defineret i skærmattributter.
- Når du bruger en underskærm, er flowlogikken for den indlejrede skærm også indlejret i flowlogikken på hovedskærmen. Derfor er det at bruge underskærme på skærme som at bruge inkluderer i ABAP programmer.
For at bruge en underskærm skal du følge tre enkle trin
- Definer underskærmsområde(r) på en skærm
- Definer passende underskærmsskærme
- Inkluder underskærmsskærmen i underskærmsområdet.
Du skal også justere rammen på underskærmen og hovedskærmen. Du skal navngive den i feltnavnsfeltet.
Yderligere skal du også justere felterne på underskærmen for at få dem vist på hovedskærmen. I tilfælde af at underskærmen er defineret til at være større end det tilgængelige område på hovedskærmen, vil kun den del af underskærmen være synlig, der passer i det tilgængelige område. Området måles altid fra øverste venstre hjørne af skærmen. Derfor bør du være forsigtig, mens du definerer underskærmsområder og opretter underskærme.
EKSEMPEL
For eksempel her har vi defineret to underskærmsområder på hovedskærmen og har knyttet to forskellige underskærme til tilsvarende områder. Når hovedskærmen kaldes, kaldes hovedskærmens PBO. Men før visning kaldes PBO'erne for hver skærm, der er knyttet til underskærmsområder på hovedskærmen, også.
Du kan inkludere en underskærmsskærm ved at bruge CALL SUBSCREEN-sætningen i flowlogikken på hovedskærmen.
For at inkludere en underskærmsskærm i underskærmsområdet på hovedskærmen og kalde dens PBO-flowlogik, skal du bruge følgende sætning i PBO-hændelsen på hovedskærmen:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Denne erklæring tildeler underskærmsskærmen nummer til underskærmsområdet kaldet . Du kan også angive det program, hvor underskærmen er defineret (valgfrit). Hvis du ikke specificerer programmet eksplicit, leder systemet efter underskærmbilledet i det samme ABAP-program som hovedprogrammet. Hvis den ikke finder en tilsvarende underskærm, opstår der en runtime-fejl. PBO-flowlogikken for underskærmsskærmen er også inkluderet på samme punkt. Dette kan kalde PBO-moduler i ABAP-programmet, hvor underskærmbilledet er defineret. I slutningen af underskærmen PBO sendes de globale felter fra programmet til alle identisk navngivne skærmfelter på underskærmen. Underskærmens PBO-flowlogik kan i sig selv omfatte yderligere underskærme.
Navnet af underskærmsområdet skal indtastes direkte uden omvendte kommaer. Du kan angive navnene og enten som bogstavelige eller variable. Hvis du bruger variabler, skal du deklarere og udfylde identisk navngivne variable i ABAP-programmet. Skærmnummeret skal være på 4 tegn. Hvis du ikke tildeler en underskærm til et område, forbliver den tom.
For at kalde PAI-flowlogikken på underskærmbilledet skal du bruge følgende sætning i PAI-flowlogikken på hovedskærmen:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Denne erklæring inkluderer PAI-flowlogikken for underskærmsskærmen inkluderet i underskærmsområdet i PBO-arrangementet. Dette kan kalde PAI-moduler i ABAP-programmet, hvor underskærmen er defineret. Data transporteres mellem identisk navngivne felter på underskærmsskærmen og ABAP-programmet, enten når PAI-hændelsen udløses, eller ved de tilsvarende FIELD-sætninger i PAI-flowlogikken på underskærmsskærmen.
Point til at huske
- Navne på elementer i underskærme på en skærm skal være unikke
- Du bør ikke have OK_CODE eller FCODE tilknyttet med underskærm. OK_CODE for selve hovedskærmen er OK_CODE for underskærmen
- Underskærme kan ikke have nogen dialogmoduler, der indeholder SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN eller LEAVE TO SCREEN. Dette vil forårsage runtime fejl.
- Du skal kalde det i flowlogikken (både PBO og PAI) på hovedskærmen.
- CALL SUBSCREEN er ikke tilladt i CHAIN..ENDCHAIN og LOOP ENDLOOP sætninger
- Kan ikke have et AT EXIT-COMMAND-modul
- De felter, du bruger, er de globale felter. De skal angives i toppen inkluderer
- Hvis du bruger underskærme fra en anden dialog program dataoverførslen vil ikke ske, medmindre du tilføjer specifik kode.