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:
CONTROLURITIP DE VIZUALIZARE A TABELULUI CU SCREEN
unde
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ÂMPLINE [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ÂMPLINE ...
În plus față de informațiile oferite în Aflarea poziției cursorului, câmpul
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
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 laFOLOSIND 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
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.