SAP ABAP Table Control med exempel

Anonim

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:

KONTROLLER  TYP TABELLVY ANVÄNDNINGSSKÄRM 

där är namnet på tabellkontrollen på en skärm i ABAP-programmet. Kontrollen låter ABAP-programmet läsa attributen för tabellkontrollen och påverka kontrollen. Här är det skärmnummer där tabellens initialvärden laddas.
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Å MARKFELT  LINE 
 [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ält  LINE 
 ... 

Förutom informationen under Finding the Cursor Position innehåller fältet information om vilken rad i tabellstyrningen markören är för närvarande. Du kan också använda

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 typ TABELLVISNING MED ANVÄNDNINGSSKÄRM )
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 vid  ANVÄ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 LINJER -rader, för att lagra det totala antalet rader i kontrollen. kan användas för att kontrollera när dataöverföringen sker
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.