Tabellkontroller och stegslingor är objekt för skärmtabellvisning som du lägger till på en skärm i skärmmålaren.
Ur programmeringssynpunkt är tabellkontroller och stegslingor nästan exakt samma. Tabellkontroller är helt enkelt förbättrade stegslingor som visar data med utseendet och känslan associerad med tabeller i skrivbordsapplikationer.
Med bordskontroller kan användaren:
- Bläddra genom tabellen vertikalt och horisontellt
- Ändra storlek på bredden på en kolumn
- Bläddra inom ett fält (när fältets innehåll är bredare än fältet)
- Välj tabellrader eller kolumner
- Ombeställ sekvensen av kolumner
- Spara de aktuella skärminställningarna för framtida användning
Tabellkontroller erbjuder också speciella formateringsfunktioner (vissa automatiska, andra valfria) som gör det lättare att titta på och använda tabeller. Tabellkontroll ger -
- automatisk storlek på tabellen (vertikal och horisontell) när användaren ändrar storlek på fönstret
- separatorlinjer mellan rader och mellan kolumner (vertikala och horisontella)
- kolumnrubrikfält för alla kolumner
En egenskap hos stegslingor är att deras tabellrader kan spänna över mer än en rad på skärmen. En rad av en tabellkontroll, å andra sidan, måste alltid finnas i en enda rad (även om det går att rulla).
I allmänhet hanteras många av funktionerna i tabellkontrollen lokalt av ditt systems SAPgui-frontend, så du behöver inte programmera dem själv. Det enda anmärkningsvärda undantaget från detta är vertikal rullning .
Exempel (Transaktion TZ60)
Syntax
För att hantera tabellkontroller i ABAP-program måste du deklarera en kontroll i programdeklarationsdelen för varje tabellkontroll med följande uttalande:
KONTROLLERTYP TABELLVY ANVÄNDNINGSSKÄRM
där
Markörposition för en tabellkontroll kan ställas in på följande sätt:
På PBO kan du ställa in markören på ett visst fält i en specifik rad i en tabellkontroll.
STÄLL PÅ MARKFELTLINE [OFFSET ]
Med hjälp av den valfria tilläggs OFFSET kan du ange markörens förskjutning i fältet som beskrivs under Ställa in markörposition.
På PAI kan du läsa aktuell markörposition.
Skaffa markörfältLINE ...
Förutom informationen under Finding the Cursor Position innehåller fältet
Skaffa markörlinjen.
för att bestämma raden i tabellkontrollen. SY-SUBRC låter dig kontrollera om markören är placerad i en rad i en tabellkontroll.
För att få motsvarande rad i den interna tabellen:
GET CURSOR line.ind = -top_line + - 1.Läs tabell index ind.
Systemvariabeln stepl - innehåller det aktuella tabellradindexet i en loop ... endloop. Loopc - innehåller antal linjer synliga i tabellen
för att skapa en tabell kontroll
1.Add bord kontrollelement till skärmen
2.Give ett namn i tabellen kontroll. I ABAP-programmet förklaras en struktur med samma (KONTROLLER
3. För att skapa fält, gå till funktionen Dikt. / Programfält.
- Ange namnet på strukturen vars fält du vill ha. (Om du vill att den ska välja den från programboken i ditt program klickar du på relevant puh-knapp).
- Välj de fält du vill ha i fältlistan och välj ok.
- Klicka i tabellens kontrollområde
Om du vill ha en markeringskolumn markerar du kryssrutan i attributen och ger den ett namn. Skapa fältet i ABAP-programmet.
I PBO ska du ha uttalandet
LOOP vidANVÄNDANDE CONTROL .ENDLOOP.
I PAI borde du ha.
LOOP vid.ENDLOOP.
Det är inom slingorna att dataöverföring sker mellan skärmen och den interna tabellen. När du fyller i den interna tabellen använder du BESKRIV TABELL
För att ändra attributen för enskilda celler tillfälligt ändra SCREEN-tabellen i PBO. Du kan ändra attributen för strukturen som skapats av CONTROLS-uttalandet
-fixed_cols etc är attributen för kontrollen -cols-index etc är attributen för kolumnerna. -cols-screen-invisible etc är skärmattributen för varje kolumn.