Výukový program dílčích obrazovek ABAP: Zavolejte dílčí obrazovku SAP
Než si přečtete tento návod, ujistěte se, co je Dialogový program…
VOLEJTE NA PODOBRÁZKU
- Vedlejší obrazovka je nezávislá obrazovka, která se zobrazuje v oblasti jiné („hlavní“) obrazovky.
- Dílčí obrazovky umožňují za běhu vložit jednu obrazovku do druhé. Na hlavní obrazovku můžete zahrnout více dílčích obrazovek.
- Termín dílčí obrazovka se vztahuje jak na obrazovku, kterou vložíte, tak na oblast na hlavní obrazovce, do které ji umístíte. Tento tutoriál je o oblastech dílčí obrazovky. Skutečné obrazovky vytvořené prostřednictvím transakce SE51 se nazývají obrazovky dílčí obrazovky, pokud jsou definovány v atributech obrazovky.
- Když použijete dílčí obrazovku, logika toku vložené obrazovky je také začleněna do logiky toku hlavní obrazovky. Používání dílčích obrazovek na obrazovkách je tedy jako používání zahrnuje programy ABAP.
Chcete-li použít dílčí obrazovku, musíte provést tři jednoduché kroky
- Definujte oblast (oblasti) dílčí obrazovky na obrazovce
- Definujte vhodné dílčí obrazovky
- Zahrňte dílčí obrazovku do oblasti dílčí obrazovky.
Také je třeba upravit rám vedlejší obrazovky a hlavní obrazovky. Musíte jej pojmenovat v poli pro název pole.
Dále je také nutné upravit pole na vedlejší obrazovce, aby se zobrazila na hlavní obrazovce. V případě, že je dílčí obrazovka definována jako větší než dostupná oblast na hlavní obrazovce, bude viditelná pouze ta část dílčí obrazovky, která se vejde do dostupné oblasti. Oblast se vždy měří od levého horního rohu obrazovky. Proto byste měli věnovat náležitou pozornost definování oblastí dílčí obrazovky a vytváření dílčích obrazovek.
PŘÍKLAD
Například zde jsme definovali dvě dílčí obrazovky na hlavní obrazovce a k odpovídajícím oblastem jsme připojili dvě různé dílčí obrazovky. Kdykoli je vyvolána hlavní obrazovka, vyvolá se PBO hlavní obrazovky. Ale před zobrazením jsou také volány PBO každé obrazovky připojené k dílčím oblastem obrazovky na hlavní obrazovce.
Pomocí příkazu CALL SUBSCREEN můžete zahrnout dílčí obrazovku do logiky toku hlavní obrazovky.
Chcete-li zahrnout obrazovku dílčí obrazovky do oblasti dílčí obrazovky hlavní obrazovky a zavolat její logiku toku PBO, použijte v události PBO na hlavní obrazovce následující příkaz:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Tento příkaz přiřadí dílčí obrazovce číslo do oblasti nazvané dílčí obrazovky . Můžete také určit program, ve kterém je definována vedlejší obrazovka (volitelné). Pokud program výslovně neurčíte, systém vyhledá vedlejší obrazovku ve stejném programu ABAP jako hlavní program. Pokud nenalezne odpovídající dílčí obrazovku, dojde k chybě běhu. Ve stejném bodě je také zahrnuta logika toku PBO na obrazovce dílčí obrazovky. To může volat moduly PBO programu ABAP, ve kterém je definována dílčí obrazovka. Na konci dílčí obrazovky PBO jsou globální pole z programu předána do všech identicky pojmenovaných polí obrazovky na obrazovce dílčí obrazovky. Logika toku PBO obrazovky dílčí obrazovky může sama obsahovat další dílčí obrazovky.
Název oblasti dílčí obrazovky je nutné zadat přímo bez uvozených čárek. Můžete zadat jména a buď jako literály nebo proměnné. Pokud používáte proměnné, musíte deklarovat a vyplnit identicky pojmenované proměnné v programu ABAP. Číslo obrazovky musí mít 4 znaky. Pokud k oblasti nepřiřadíte dílčí obrazovku, zůstane prázdná.
Chcete-li vyvolat logiku toku PAI na vedlejší obrazovce, použijte v logice toku PAI na hlavní obrazovce následující příkaz:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Toto prohlášení zahrnuje logiku toku PAI obrazovky dílčí obrazovky zahrnuté v oblasti dílčí obrazovky v akci PBO. To může volat moduly PAI programu ABAP, ve kterém je definována dílčí obrazovka. Data jsou přenášena mezi identicky pojmenovanými poli na obrazovce dílčí obrazovky a programem ABAP buď při spuštění události PAI, nebo pomocí odpovídajících příkazů FIELD v logice toku PAI obrazovky dílčí obrazovky.
Body k zapamatování
- Názvy prvků dílčích obrazovek v rámci obrazovky by měly být jedinečné
- Neměli byste mít OK_CODE nebo FCODE připojené k dílčí obrazovce. Samotný OK_CODE hlavní obrazovky je OK_CODE vedlejší obrazovky
- Dílčí obrazovky nemohou mít žádné dialogové moduly obsahující SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN nebo LEAVE TO SCREEN. To způsobí chybu běhu.
- Musíte to volat v logice toku (jak PBO, tak PAI) na hlavní obrazovce.
- CALL SUBSCREEN není povoleno v příkazech CHAIN..ENDCHAIN a LOOP ENDLOOP
- Nelze mít modul AT EXIT-COMMAND
- Pole, která používáte, jsou globální pole. Musí být uvedeny v horní části
- Pokud používáte dílčí obrazovky z jiné dialogový program přenos dat neproběhne, pokud nepřidáte konkrétní kód.