SAP Kontrola tabeli ABAP z przykładami
Kontrolki tabeli i pętle krokowe to obiekty do wyświetlania tabeli ekranowej, które dodajesz do ekranu na ekranie Painter.
Z punktu widzenia programowania elementy sterujące tabeli i pętle krokowe są prawie takie same. Elementy sterujące tabelami to po prostu ulepszone pętle krokowe, które wyświetlają dane o wyglądzie i działaniu kojarzącym się z tabelami w aplikacjach komputerowych.
Funkcje kontroli tabeli ABAP
Dzięki kontrolkom tabeli użytkownik może:
- Przewijaj tabelę w pionie i poziomie
- Zmień szerokość kolumny
- Przewijanie w obrębie pola (gdy zawartość pola jest szersza niż samo pole)
- Wybierz wiersze lub kolumny tabeli
- Zmień kolejność kolumn
- Zapisz bieżące ustawienia wyświetlania do wykorzystania w przyszłości
Elementy sterujące tabelami oferują także specjalne funkcje formatowania (niektóre automatyczne, inne opcjonalne), które ułatwiają przeglądanie i używanie tabel. Sterowanie stołem zapewnia –
- automatyczna zmiana rozmiaru tabeli (w pionie i poziomie), gdy użytkownik zmieni rozmiar okna
- linie oddzielające między wierszami i między kolumnami (pionowe i poziome)
- pola nagłówka kolumny dla wszystkich kolumn
Jedną z cech pętli krokowych jest to, że ich wiersze tabeli mogą obejmować więcej niż jedną linię na ekranie. Z drugiej strony wiersz kontrolki tabeli musi zawsze znajdować się w jednej linii (chociaż możliwe jest przewijanie).
Ogólnie rzecz biorąc, wiele funkcji udostępnianych przez kontrolkę tabeli jest obsługiwanych lokalnie przez system SAPinterfejs GUI, dzięki czemu nie musisz ich programować samodzielnie. Jedynym godnym uwagi wyjątkiem jest przewijanie w pionie.
Przykład (Transakcja TZ60)
Składnia
Aby obsługiwać kontrolki tabeli w programach ABAP, należy zadeklarować kontrolkę w części deklaracyjnej programu dla każdej kontrolki tabeli, korzystając z następującego polecenia:
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
Gdzie to nazwa kontrolki tabeli na ekranie w programie ABAP. Sterowanie umożliwia programowi ABAP odczytanie atrybutów kontrolki tabeli i wpływanie na sterowanie. Tutaj: to numer ekranu, na którym ładowane są początkowe wartości tabeli.
Pozycję kursora dla kontrolki tabeli można ustawić na następujące sposoby:
W PBO możesz ustawić kursor na konkretnym polu konkretnego wiersza kontrolki tabeli.
SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]
Używając opcjonalnego dodatku OFFSET, możesz wprowadzić przesunięcie kursora w polu, jak opisano w części Ustawianie pozycji kursora.
W PAI możesz odczytać aktualną pozycję kursora.
GET CURSOR FIELD <f> LINE <lin> ...
Oprócz informacji podanych w polu Ustalanie pozycji kursora, pole zawiera informację, w którym wierszu tabeli znajduje się aktualnie kursor. Możesz także użyć
GET CURSOR LINE <lin>.
aby określić wiersz kontrolki tabeli. SY-SUBRC pozwala sprawdzić, czy kursor znajduje się w wierszu kontrolki tabeli.
Aby uzyskać odpowiednią linię stół wewnętrzny:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
Zmienna systemowa stepl – zawiera bieżący indeks linii tabeli w pętli…endloop. Loopc – zawiera liczbę linii widocznych w tabeli
Aby utworzyć kontrolkę tabeli
1.Dodaj element kontrolny tabeli do swojego ekranu
2.Nadaj nazwę kontrolce tabeli. W programie ABAP zadeklaruj strukturę o tej samej nazwie ( STEROWANIE wpisz WIDOK TABELI KORZYSTAJĄC Z EKRANU )
3. Aby utworzyć pola przejdź do funkcji Pola Dykt./Program.
- Wpisz nazwę struktury, której pola chcesz. (Jeśli chcesz, żeby wybrało go ze słownika Twojego programu, kliknij odpowiedni przycisk).
- Na liście pól wybierz żądane pola i kliknij OK.
- Kliknij obszar kontrolny tabeli
Jeśli chcesz kolumnę wyboru, zaznacz odpowiednie pole wyboru w atrybutach i nadaj jej nazwę. Utwórz pole w programu ABAP.
W PBO powinieneś mieć oświadczenie
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
W PAI powinieneś mieć.
LOOP at <itab>. ENDLOOP.
To w pętlach następuje transfer danych pomiędzy ekranem a tabelą wewnętrzną. Kiedy zapełniasz tabelę wewnętrzną, użyj OPISUJ TABELĘ LINIE -lines, do przechowywania całkowitej liczby linii w kontrolce. Instrukcji FIELD można używać do kontrolowania, kiedy następuje transfer danych
Aby zmienić atrybuty poszczególnych komórek należy tymczasowo zmienić tabelę SCREEN w PBO. Możesz zmienić atrybuty struktury utworzonej za pomocą instrukcji STEROWANIE
<cntrl>-fixed_cols etc are the attributes of the control <cntrl>-cols-index etc are the attributes of the columns. <cntrl>-cols-screen-invisible etc are the screen attributes of each column.