Handledning för ABAP-underskärmar: Ring underskärmen in SAP
Innan du läser den här handledningen, se till att du vad ett dialogprogram är ...
RING UNDERSKÄRM
- En underskärm är en oberoende skärm som visas i ett område på en annan (”huvud”) skärm.
- Underskärmar låter dig bädda in en skärm i en annan under körning. Du kan inkludera flera underskärmar på huvudskärmen.
- Termen underskärm gäller både för skärmen som du bäddar in och området på huvudskärmen där du placerar den. Denna handledning handlar om underskärmsområden. De faktiska skärmarna som skapas genom SE51-transaktionen kallas underskärmsskärmar om de definieras i skärmattribut.
- När du använder en underskärm, är flödeslogiken för den inbäddade skärmen också inbäddad i flödeslogiken på huvudskärmen. Därför är att använda underskärmar på skärmar som att använda inkluderar i ABAP-program.
För att använda en underskärm måste du följa tre enkla steg
- Definiera underskärmsområde(n) på en skärm
- Definiera lämpliga underskärmar
- Inkludera underskärmsskärmen i underskärmsområdet.
Du måste också justera ramen för underskärmen och huvudskärmen. Du måste namnge den i fältnamnsfältet.
Vidare måste du också justera fälten på underskärmen för att få dem att visas på huvudskärmen. Om underskärmen är definierad att vara större än det tillgängliga området på huvudskärmen, kommer endast den del av underskärmen att vara synlig som passar i det tillgängliga området. Området mäts alltid från skärmens övre vänstra hörn. Därför bör du vara tillräckligt försiktig när du definierar underskärmsområden och skapar underskärmar.
EXEMPEL
Här har vi till exempel definierat två underskärmsområden på huvudskärmen och har kopplat två olika underskärmar till motsvarande områden. Närhelst huvudskärmen anropas, anropas PBO för huvudskärmen. Men före visning kallas även PBO:erna för varje skärm som är ansluten till underskärmsområden på huvudskärmen.
Du kan inkludera en underskärmsskärm med CALL SUBSCREEN-satsen i flödeslogiken på huvudskärmen.
För att inkludera en underskärmsskärm i underskärmsområdet på huvudskärmen och anropa dess PBO-flödeslogik, använd följande uttalande i PBO-händelsen på huvudskärmen:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Detta uttalande tilldelar underskärmsskärmen nummer till underskärmsområdet som kallas . Du kan också ange i vilket program underskärmsskärmen definieras (valfritt). Om du inte anger programmet explicit, letar systemet efter underskärmen i samma ABAP-program som huvudprogrammet. Om den inte hittar en motsvarande underskärmsskärm uppstår ett körtidsfel. PBO-flödeslogiken för underskärmen ingår också vid samma punkt. Detta kan anropa PBO-moduler i ABAP-programmet där underskärmen är definierad. I slutet av underskärmen PBO skickas de globala fälten från programmet till alla identiskt namngivna skärmfält på underskärmen. PBO-flödeslogiken för underskärmen kan i sig inkludera ytterligare underskärmar.
Namnet av underskärmsområdet måste anges direkt utan inverterade kommatecken. Du kan ange namnen och antingen som bokstaver eller variabler. Om du använder variabler måste du deklarera och fylla i identiskt namngivna variabler i ABAP-programmet. Skärmnumret måste vara 4 tecken långt. Om du inte tilldelar en underskärmsskärm till ett område förblir den tom.
För att anropa PAI-flödeslogiken för underskärmen, använd följande sats i PAI-flödeslogiken på huvudskärmen:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Detta uttalande inkluderar PAI-flödeslogiken för underskärmen som ingår i underskärmsområdet i PBO-evenemanget. Detta kan anropa PAI-moduler i ABAP-programmet där underskärmen är definierad. Data transporteras mellan identiskt namngivna fält på underskärmsskärmen och ABAP-programmet antingen när PAI-händelsen utlöses, eller vid motsvarande FIELD-satser i PAI-flödeslogiken på underskärmen.
Poäng att komma ihåg
- Namn på element i underskärmar inom en skärm ska vara unika
- Du bör inte ha OK_CODE eller FCODE kopplad till underskärmen. OK_CODE för själva huvudskärmen är OK_CODE för underskärmen
- Underskärmar kan inte ha några dialogmoduler som innehåller SET TITLE RAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN eller LEAVE TO SCREEN. Detta kommer att orsaka körtidsfel.
- Du måste anropa det i flödeslogiken (både PBO och PAI) på huvudskärmen.
- CALL SUBSCREEN är inte tillåtet i CHAIN..ENDCHAIN- och LOOP ENDLOOP-satser
- Kan inte ha en AT EXIT-COMMAND-modul
- Fälten som du använder är de globala fälten. De måste deklareras i toppen inkluderar
- Om du använder underskärmar från en annan dialogprogram dataöverföringen kommer inte att ske om du inte lägger till specifik kod.