Samouczek dotyczący ekranów podrzędnych ABAP: wywołanie podekranu SAP
Zanim przeczytasz ten samouczek, upewnij się, czym jest program dialogowy…
ZADZWOŃ PODSCRENOWO
- Podekran to niezależny ekran wyświetlany w obszarze innego („głównego”) ekranu.
- Podekrany umożliwiają osadzanie jednego ekranu w innym w czasie wykonywania. Na ekranie głównym można umieścić wiele ekranów podrzędnych.
- Termin podekran odnosi się zarówno do osadzanego ekranu, jak i obszaru na ekranie głównym, w którym go umieszczasz. Ten samouczek dotyczy obszarów podekranów. Rzeczywiste ekrany utworzone w ramach transakcji SE51 nazywane są ekranami podekranowymi, jeśli zdefiniowano je w atrybutach ekranu.
- Gdy używasz podekranu, logika przepływu osadzonego ekranu jest również osadzona w logice przepływu ekranu głównego. Dlatego też używanie podekranów na ekranach przypomina korzystanie z Programy ABAP.
Aby skorzystać z podekranu, należy wykonać trzy proste kroki
- Zdefiniuj obszar(y) podekranu na ekranie
- Zdefiniuj odpowiednie ekrany podrzędne
- Dołącz ekran podekranowy do obszaru podekranu.
Należy także dostosować ramkę ekranu podrzędnego i ekranu głównego. Musisz nadać mu nazwę w polu nazwy pola.
Ponadto musisz także dostosować pola na ekranie podrzędnym, aby pojawiały się na ekranie głównym. W przypadku, gdy podekran zostanie zdefiniowany jako większy niż dostępny obszar na ekranie głównym, widoczna będzie tylko część podekranu mieszcząca się w dostępnym obszarze. Powierzchnia jest zawsze mierzona od lewego górnego rogu ekranu. Dlatego też należy zachować odpowiednią ostrożność podczas definiowania obszarów podekranów i tworzenia podekranów.
PRZYKŁAD
Na przykład tutaj zdefiniowaliśmy dwa obszary podekranów na ekranie głównym i dołączyliśmy dwa różne podekrany do odpowiednich obszarów. Za każdym razem, gdy wywoływany jest ekran główny, wywoływane jest PBO ekranu głównego. Ale przed wyświetleniem wywoływane są również PBO każdego ekranu dołączonego do obszarów podekranów na ekranie głównym.
Możesz dołączyć ekran podrzędny za pomocą instrukcji CALL SUBSCREEN w logice przepływu na ekranie głównym.
Aby uwzględnić ekran podrzędny w obszarze podrzędnym ekranu głównego i wywołać jego logikę przepływu PBO, należy użyć następującego polecenia w zdarzeniu PBO ekranu głównego:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Ta instrukcja przypisuje ekranowi podrzędnemu numer do obszaru podekranu zwanego . Można także określić program, w którym definiowany jest ekran podrzędny (opcjonalnie). Jeśli nie określisz wyraźnie programu, system będzie szukać ekranu podrzędnego w tym samym programie ABAP, co program główny. Jeśli nie znajdzie odpowiedniego ekranu podrzędnego, wystąpi błąd wykonania. W tym samym miejscu uwzględniona jest także logika przepływu PBO na ekranie podrzędnym. Może to wywołać moduły PBO programu ABAP, w którym zdefiniowany jest ekran podrzędny. Na końcu podekranu PBO pola globalne z programu są przekazywane do dowolnych pól ekranu o identycznych nazwach na ekranie podekranu. Logika przepływu PBO ekranu podrzędnego może sama zawierać dalsze podekrany.
Imię obszaru podekranu należy wpisać bezpośrednio, bez cudzysłowów. Możesz podać nazwy I albo jako literały, albo jako zmienne. Jeśli używasz zmiennych, musisz zadeklarować i wypełnić zmienne o identycznych nazwach w programie ABAP. Numer ekranu musi mieć długość 4 znaków. Jeśli nie przypiszesz ekranu podrzędnego do obszaru, pozostanie on pusty.
Aby wywołać logikę przepływu PAI ekranu podrzędnego, należy użyć następującego polecenia w logice przepływu PAI ekranu głównego:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
To stwierdzenie obejmuje logikę przepływu PAI na ekranie podekranowym zawartym w obszarze ekranu podrzędnego w wydarzeniu PBO. Może to wywołać moduły PAI programu ABAP, w którym zdefiniowany jest ekran podrzędny. Dane są przesyłane pomiędzy polami o identycznych nazwach na ekranie podrzędnym a programem ABAP albo w momencie wyzwolenia zdarzenia PAI, albo w odpowiednich instrukcjach FIELD w logice przepływu PAI na ekranie podrzędnym.
Punkty do zapamiętania
- Nazwy elementów podekranów w ramach ekranu powinny być unikalne
- Nie powinieneś mieć OK_CODE ani FCODE dołączonego do podekranu. OK_CODE samego ekranu głównego jest OK_CODE podekranu
- Podekrany nie mogą posiadać modułów dialogowych zawierających SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN lub LEAVE TO SCREEN. Spowoduje to błąd wykonania.
- Musisz to wywołać w logice przepływu (zarówno PBO, jak i PAI) na ekranie głównym.
- CALL SUBSCREEN nie jest dozwolone w instrukcjach CHAIN..ENDCHAIN i LOOP ENDLOOP
- Nie można mieć modułu AT EXIT-COMMAND
- Pola, których używasz, są polami globalnymi. Muszą być zadeklarowane na górze
- Jeśli używasz podekranów z innego programu dialogowego transfer danych nie nastąpi, chyba że dodasz określony kod.