SAP ABAP Table Control z przykładami

Anonim

Elementy sterujące tabelami i pętle kroków to obiekty do wyświetlania tabeli ekranów, które można dodać do ekranu w programie Malarz ekranu.
Z punktu widzenia programowania kontrolki tabeli i pętle kroków są prawie dokładnie takie same. Kontrolki tabel to po prostu ulepszone pętle kroków, które wyświetlają dane w sposób podobny do tabel w aplikacjach komputerowych.
Dzięki kontrolkom tabeli użytkownik może:

  • Przewijaj tabelę w pionie i poziomie
  • Zmień rozmiar kolumny
  • Przewiń w polu (gdy zawartość pola jest szersza niż pole)
  • Wybierz wiersze lub kolumny tabeli
  • Zmień kolejność kolumn
  • Zapisz bieżące ustawienia wyświetlania do wykorzystania w przyszłości

Kontrolki tabel oferują również specjalne funkcje formatowania (niektóre automatyczne, inne opcjonalne), które ułatwiają przeglądanie i używanie tabel. Table Control zapewnia -

  • automatyczna zmiana rozmiaru tabeli (w pionie i w poziomie), gdy użytkownik zmieni rozmiar okna
  • linie separujące między wierszami i między kolumnami (pionowe i poziome)
  • pola nagłówków kolumn dla wszystkich kolumn

Jedną z cech pętli kroków 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 jednym wierszu (chociaż przewijanie jest możliwe).
Ogólnie rzecz biorąc, wiele funkcji udostępnianych przez kontrolkę tabeli jest obsługiwanych lokalnie przez interfejs użytkownika SAPgui systemu, więc nie ma potrzeby ich samodzielnego programowania. 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, używając następującej instrukcji:

ELEMENTY STERUJĄCE  TYP WIDOK TABELI PRZY UŻYCIU EKRANU 

gdzie to nazwa kontrolki tabeli na ekranie w programie ABAP. Sterowanie pozwala programowi ABAP odczytać atrybuty kontrolki tabeli i wpływać na sterowanie. Tutaj jest numerem 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 określonym polu w określonym wierszu kontrolki tabeli.

USTAW KURSOR POLE  LINIA 
 [PRZESUNIĘCIE ]

Korzystając z opcjonalnego dodatku OFFSET, możesz wprowadzić przesunięcie kursora w polu zgodnie z opisem w części Ustawianie pozycji kursora.
W PAI możesz odczytać aktualną pozycję kursora.

GET CURSOR FIELD  LINE 

Oprócz informacji podanych w sekcji Znajdowanie pozycji kursora, pole zawiera informacje o tym, w którym wierszu tabeli kontrolki znajduje się kursor. Możesz także użyć

POBIERZ LINIĘ KURSORA 
.

do określenia wiersza kontrolki tabeli. SY-SUBRC umożliwia sprawdzenie, czy kursor jest umieszczony w wierszu kontrolki tabeli.
Aby uzyskać odpowiednią linię tabeli wewnętrznej:

GET CURSOR linia 
.ind = 
 -top_line + 
 - 1.Przeczytaj tabelę  index ind.

Zmienna systemowa stepl - zawiera aktualny indeks linii tabeli w pętli… endloop. Loopc - zawiera liczbę wierszy widocznych w tabeli
Aby utworzyć kontrolkę tabeli
1. Dodaj element kontrolny tabeli do ekranu 2.
Nadaj nazwę kontrolce tabeli. W programie ABAP zadeklaruj strukturę o takim samym typie (CONTROLS TABLEVIEW USING SCREEN ) 3. Aby
utworzyć pola przejdź do funkcji Dict./Program fields.

  • Wprowadź nazwę struktury, której pola chcesz. (Jeśli chcesz, aby wybrał go ze słownika programu, kliknij odpowiedni przycisk puh).
  • Z listy pól wybierz żądane pola i wybierz OK.
  • Kliknij w obszarze sterowania tabelą

Jeśli chcesz mieć kolumnę wyboru, zaznacz odpowiednie pole wyboru w atrybutach i nadaj mu nazwę. Utwórz pole w programie ABAP.
W OPP powinieneś mieć oświadczenie

LOOP at  USING CONTROL .ENDLOOP.

W PAI powinieneś mieć.

LOOP w .ENDLOOP.

To właśnie w obrębie pętli odbywa się transfer danych między ekranem a wewnętrzną tabelą. Podczas wypełniania wewnętrznej tabeli użyj opcji DESCRIBE TABLE LINES -lines, aby zapisać całkowitą liczbę wierszy w kontrolce. może być użyty do kontroli, 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 CONTROLS

 -fixed_cols itp. to atrybuty kontrolki -cols-index itp. to atrybuty kolumn. -cols-screen-invisible etc to atrybuty ekranu każdej kolumny.