Vodič za podzaslone ABAP: Pozovite podzaslon SAP
Prije nego što pročitate ovaj vodič, provjerite što je dijaloški program...
POZIV PODEKRAN
- Podzaslon je neovisni zaslon koji se prikazuje u području drugog ("glavnog") zaslona.
- Podzasloni vam omogućuju da ugradite jedan zaslon u drugi tijekom izvođenja. Na glavni zaslon možete uključiti više podzaslona.
- Izraz podzaslon odnosi se i na zaslon koji ugradite i na područje na glavnom zaslonu u koje ga postavite. Ovaj vodič govori o područjima podzaslona. Stvarni zasloni kreirani putem SE51 transakcije nazivaju se podzasloni ako su definirani u atributima zaslona.
- Kada koristite podzaslon, logika toka ugrađenog zaslona također je ugrađena u logiku toka glavnog zaslona. Dakle, korištenje podzaslona na zaslonima je kao korištenje uključuje u ABAP programi.
Za korištenje podzaslona morate slijediti tri jednostavna koraka
- Definirajte područja podzaslona na zaslonu
- Definirajte odgovarajuće podzaslone
- Uključite podzaslon u područje podzaslona.
Također, trebate prilagoditi okvir podzaslona i glavnog zaslona. Morate ga imenovati u polju za naziv polja.
Nadalje, također trebate prilagoditi polja unutar podzaslona kako bi se pojavila na glavnom zaslonu. U slučaju da je podzaslon definiran kao veći od dostupnog područja na glavnom zaslonu, bit će vidljiv samo dio podzaslona koji stane u dostupno područje. Područje se uvijek mjeri od gornjeg lijevog kuta zaslona. Stoga biste trebali biti oprezni pri definiranju područja podzaslona i stvaranju podzaslona.
PRIMJER
Na primjer, ovdje smo definirali dva podzaslona na glavnom ekranu i priložili dva različita podzaslona odgovarajućim područjima. Kad god se pozove glavni zaslon, poziva se PBO glavnog zaslona. Ali prije prikaza pozivaju se i PBO-ovi svakog zaslona koji su povezani s područjima podzaslona na glavnom zaslonu.
Zaslon podzaslona možete uključiti pomoću naredbe CALL SUBSCREEN u logici tijeka glavnog zaslona.
Za uključivanje podzaslona u područje podzaslona glavnog zaslona i pozivanje njegove PBO logike toka, upotrijebite sljedeću izjavu u PBO događaju glavnog zaslona:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Ova izjava dodjeljuje podzaslon s brojem na podzaslonsko područje tzv . Također možete odrediti program u kojem je definiran podzaslon (opcija). Ako izričito ne navedete program, sustav traži ekran podzaslona u istom ABAP programu kao i glavni program. Ako ne pronađe odgovarajući zaslon podzaslona, javlja se pogreška vremena izvođenja. PBO logika toka podzaslona također je uključena na istoj točki. Ovo može pozvati PBO module programa ABAP u kojem je definiran podzaslon. Na kraju podzaslona PBO, globalna polja iz programa prosljeđuju se svim ekranskim poljima s identičnim nazivom na podzaslonu. PBO logika toka ekrana podzaslona može sama uključivati daljnje podzaslone.
Ime područja podzaslona mora se unijeti izravno bez navodnika. Možete odrediti imena i bilo kao literale ili varijable. Ako koristite varijable, morate deklarirati i ispuniti varijable s istim imenom u ABAP programu. Broj zaslona mora imati 4 znaka. Ako nekom području ne dodijelite podzaslon, ono ostaje prazno.
Da biste pozvali PAI logiku toka zaslona podzaslona, upotrijebite sljedeću izjavu u PAI logici toka glavnog zaslona:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Ova izjava uključuje PAI logiku toka podzaslonskog zaslona uključenog u podzaslonsko područje u PBO događaju. Ovo može pozvati PAI module programa ABAP u kojem je definiran podzaslon. Podaci se prenose između polja s identičnim nazivom na podzaslonu i ABAP programu bilo kada se aktivira PAI događaj, bilo u odgovarajućim FIELD izjavama u PAI tokovnoj logici podzaslona.
Zapamtite
- Imena elemenata podzaslona unutar ekrana trebaju biti jedinstvena
- Ne biste trebali imati OK_CODE ili FCODE priložen uz podzaslon. Sam OK_CODE glavnog zaslona je OK_CODE podzaslona
- Podzasloni ne mogu imati dijaloške module koji sadrže POSTAVITE NASLOVNU TRAKU, POSTAVITE PF-STATUS, POSTAVITE ZASLON, NAPUSTI ZASLON ili NAPUSTI ZASLON. To će uzrokovati pogrešku vremena izvođenja.
- Morate ga pozvati u logici toka (i PBO i PAI) glavnog zaslona.
- CALL SUBSCREEN nije dopušten u izjavama CHAIN..ENDCHAIN i LOOP ENDLOOP
- Ne može imati modul AT EXIT-COMMAND
- Polja koja koristite su globalna polja. Moraju biti deklarirani u vrhu uključivanja
- Ako koristite podzaslone iz drugog dijaloški program prijenos podataka neće se dogoditi ako ne dodate određeni kod.