Controlul tabelului SAP ABAP cu exemple

Anonim

Comenzile tabelelor și buclele de pas sunt obiecte pentru afișarea tabelelor pe ecran pe care le adăugați la un ecran din Screen Painter.
Din punct de vedere al programării, comenzile de masă și buclele de pas sunt aproape exact la fel. Comenzile de tabelă sunt pur și simplu bucle de pas îmbunătățite care afișează date cu aspectul asociat tabelelor din aplicațiile desktop.
Cu comenzile de masă, utilizatorul poate:

  • Derulați prin tabel vertical și orizontal
  • Redimensionați lățimea unei coloane
  • Derulați într-un câmp (când conținutul câmpului este mai larg decât câmpul)
  • Selectați rânduri sau coloane de tabel
  • Reordonați succesiunea coloanelor
  • Salvați setările curente ale afișajului pentru utilizare ulterioară

Comenzile de masă oferă, de asemenea, caracteristici speciale de formatare (unele automate, altele opționale) care fac tabelele mai ușor de privit și de utilizat. Controlul mesei oferă -

  • redimensionarea automată a tabelului (verticală și orizontală) atunci când utilizatorul redimensionează fereastra
  • linii de separare între rânduri și între coloane (verticală și orizontală)
  • câmpuri de antet de coloană pentru toate coloanele

O caracteristică a buclelor pas este că rândurile lor de tabel pot acoperi mai mult de o linie pe ecran. Un rând al unui control de masă, pe de altă parte, trebuie să fie întotdeauna conținut într-o singură linie (deși este posibilă derularea).
În general, multe dintre caracteristicile furnizate de controlul de masă sunt gestionate local de frontend-ul SAPgui al sistemului dvs., deci nu este nevoie să le programați singur. Singura excepție notabilă de la aceasta este derularea verticală .
Exemplu (tranzacție TZ60)


Sintaxă
Pentru a gestiona controalele de masă în programele ABAP, trebuie să declarați un control în partea de declarație a programului pentru fiecare control de masă utilizând următoarea declarație:

CONTROLURI  TIP DE VIZUALIZARE A TABELULUI CU SCREEN 

unde este numele comenzii de masă de pe un ecran din programul ABAP. Controlul permite programului ABAP să citească atributele controlului tabelului și să influențeze controlul. Aici, este numărul ecranului în care sunt încărcate valorile inițiale ale tabelului.
Poziția cursorului pentru un control de masă poate fi setată în următoarele moduri:
La PBO puteți seta cursorul pe un câmp specific al unui rând specific al unui control de masă.

SETAȚI CURSOR CÂMP  LINE 
 [OFFSET ]

Folosind adăugarea opțională OFFSET, puteți introduce offsetul cursorului în câmp așa cum este descris în Setarea poziției cursorului.
La PAI puteți citi poziția curentă a cursorului.

OBȚINEȚI CURSOR CÂMP  LINE 
 ... 

În plus față de informațiile oferite în Aflarea poziției cursorului, câmpul conține informații pe care rând al comenzii de tabel este în prezent cursorul. Puteți utiliza, de asemenea

OBȚINEȚI CURSOR LINE 
.

pentru a determina rândul controlului tabelului. SY-SUBRC vă permite să verificați dacă cursorul este plasat într-un rând al unui control de masă.
Pentru a obține linia corespunzătoare a tabelului intern:

GET CURSOR line 
.ind = 
 -top_line + 
 - 1.Citiți tabelul  index ind.

Variabila de sistem stepl - conține indicele curent al liniei tabelei într-o buclă ... endloop. Loopc - conține numărul de linii vizibile în tabel
Pentru a crea un control de tabel 1.
Adăugați un element de control de tabel pe ecranul dvs.
2. Dați un nume controlului de tabel. În programul ABAP declarați o structură cu aceeași (CONTROLS tip TABLEVIEW USING SCREEN )
3. Pentru a crea câmpuri accesați funcția Dict./Program câmpuri.

  • Introduceți numele structurii ale cărei câmpuri doriți. (Dacă doriți să o alegeți din dicționarul programului dvs., faceți clic pe butonul corespunzător).
  • În lista câmpurilor alege câmpurile pe care le dorești și alege ok.
  • Faceți clic în zona de control a tabelului

Dacă doriți o coloană de selecție, bifați caseta de selectare corespunzătoare din atribute și dați-i un nume. Creați câmpul din programul ABAP.
În PBO ar trebui să aveți declarația

LOOP la  FOLOSIND CONTROL .ENDLOOP.

În PAI ar trebui să aveți.

LOOP la .ENDLOOP.

În cadrul buclelor, transferul de date are loc între ecran și tabelul intern. Când populați tabelul intern, folosiți DESCRIERE TABEL LINII -linii, pentru a stoca numărul total de linii în control. poate fi folosit pentru a controla când are loc transferul de date
Pentru a schimba atributele celulelor individuale schimbați temporar tabelul SCREEN din PBO. Puteți modifica atributele structurii create de instrucțiunea CONTROLS

 -fixed_cols etc sunt atributele controlului -cols-index etc sunt atributele coloanelor. -cols-screen-invisible etc sunt atributele ecranului fiecărei coloane.