ABAP-underskjermer Opplæring: Ring underskjermen inn SAP
Før du leser denne opplæringen må du forsikre deg om hva et dialogprogram er ...
ANRINGSUNDERSKJERM
- En underskjerm er en uavhengig skjerm som vises i et område på en annen («hoved») skjerm.
- Underskjermer lar deg bygge inn en skjerm i en annen under kjøring. Du kan inkludere flere underskjermer på hovedskjermen.
- Begrepet underskjerm gjelder både for skjermen du legger inn, og området på hovedskjermen du plasserer den i. Denne opplæringen handler om underskjermområder. De faktiske skjermbildene som er opprettet gjennom SE51-transaksjonen, kalles underskjermskjermer hvis de er definert i skjermattributter.
- Når du bruker et underskjermbilde, er flytlogikken til den innebygde skjermen også innebygd i flytlogikken til hovedskjermen. Derfor er det å bruke underskjermer på skjermer som å bruke inkluderer i ABAP-programmer.
For å bruke en underskjerm må du følge tre enkle trinn
- Definer underskjermområdet(e) på en skjerm
- Definer passende underskjermer
- Inkluder underskjermbildet i underskjermområdet.
Du må også justere rammen på underskjermen og hovedskjermen. Du må navngi den i feltnavnfeltet.
Videre må du også justere feltene i underskjermen for å få dem til å vises på hovedskjermen. I tilfelle underskjermen er definert til å være større enn det tilgjengelige området i hovedskjermen, vil kun den delen av underskjermen være synlig som passer i det tilgjengelige området. Området måles alltid fra øverste venstre hjørne av skjermen. Derfor bør du ta tilstrekkelig varsomhet mens du definerer underskjermområder og lager underskjermer.
EKSEMPEL
For eksempel her har vi definert to underskjermområder på hovedskjermen og har festet to forskjellige underskjermer til tilsvarende områder. Når hovedskjermen kalles opp, kalles PBO for hovedskjermen. Men før visning kalles også PBO-ene for hver skjerm festet med underskjermområder på hovedskjermen.
Du kan inkludere et underskjermbilde ved å bruke CALL SUBSCREEN-setningen i flytlogikken til hovedskjermen.
For å inkludere et underskjermbilde i underskjermområdet på hovedskjermen og kalle dets PBO-flytlogikk, bruk følgende setning i PBO-hendelsen på hovedskjermen:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Denne setningen tildeler underskjermbildet nummer til underskjermområdet som kalles . Du kan også spesifisere programmet der underskjermbildet er definert (valgfritt). Hvis du ikke spesifiserer programmet eksplisitt, ser systemet etter underskjermbildet i samme ABAP-program som hovedprogrammet. Hvis den ikke finner et tilsvarende underskjermbilde, oppstår det en kjøretidsfeil. PBO-flytlogikken til underskjermbildet er også inkludert på samme punkt. Dette kan kalle PBO-moduler til ABAP-programmet der underskjermbildet er definert. På slutten av underskjermen PBO blir de globale feltene fra programmet sendt til alle identisk navngitte skjermfelt i underskjermbildet. PBO-flytlogikken til underskjermbildet kan i seg selv inkludere ytterligere underskjermer.
Navnet av underskjermområdet må legges inn direkte uten omvendt komma. Du kan spesifisere navnene og enten som bokstaver eller variabler. Hvis du bruker variabler, må du deklarere og fylle ut variabler med identisk navn i ABAP-programmet. Skjermnummeret må være på 4 tegn. Hvis du ikke tilordner et underskjermbilde til et område, forblir det tomt.
For å kalle PAI-flytlogikken til underskjermbildet, bruk følgende setning i PAI-flytlogikken på hovedskjermen:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Denne setningen inkluderer PAI-flytlogikken til underskjermbildet inkludert i underskjermområdet i PBO-arrangementet. Dette kan kalle PAI-moduler til ABAP-programmet der underskjermbildet er definert. Data transporteres mellom identisk navngitte felt i underskjermbildet og ABAP-programmet enten når PAI-hendelsen utløses, eller ved de tilsvarende FIELD-setningene i PAI-flytlogikken til underskjermbildet.
Poeng å huske
- Navn på elementer i underskjermer i en skjerm skal være unike
- Du bør ikke ha OK_CODE eller FCODE vedlagt med underskjerm. OK_CODE for selve hovedskjermen er OK_CODE for underskjermen
- Underskjermer kan ikke ha noen dialogmoduler som inneholder SET TITTELBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN eller LEAVE TO SCREEN. Dette vil forårsake kjøretidsfeil.
- Du må kalle det i flytlogikken (både PBO og PAI) på hovedskjermen.
- CALL SUBSCREEN er ikke tillatt i CHAIN..ENDCHAIN og LOOP ENDLOOP-setninger
- Kan ikke ha en AT EXIT-COMMAND-modul
- Feltene du bruker er de globale feltene. De må deklareres i toppen inkluderer
- Hvis du bruker underskjermer fra en annen dialogprogram dataoverføringen vil ikke skje med mindre du legger til spesifikk kode.