SAP ABAP Table Control med eksempler

Anonim

Tabellkontroller og trinnløkker er objekter for skjermbordvisning som du legger til på en skjerm i Screen Painter.
Fra et programmeringssynspunkt er tabellkontroller og trinnløkker nesten nøyaktig de samme. Tabellkontroller er ganske enkelt forbedrede trinnløkker som viser data med utseendet og følelsen som er knyttet til tabeller i skrivebordsprogrammer.
Med bordkontroller kan brukeren:

  • Bla gjennom bordet vertikalt og horisontalt
  • Endre størrelsen på bredden på en kolonne
  • Rull innenfor et felt (når feltinnholdet er bredere enn feltet)
  • Velg tabellrader eller kolonner
  • Omrekke sekvensen av kolonner
  • Lagre gjeldende skjerminnstillinger for fremtidig bruk

Tabellkontroller tilbyr også spesielle formateringsfunksjoner (noen automatiske, noen valgfrie) som gjør det lettere å se og bruke tabeller. Tabellkontroll gir -

  • automatisk størrelse på tabell (vertikal og horisontal) når brukeren endrer størrelsen på vinduet
  • skillelinjer mellom rader og mellom kolonner (vertikal og horisontal)
  • kolonneoverskriftsfelt for alle kolonner

En funksjon av trinnløkker er at tabellradene deres kan strekke seg over mer enn én linje på skjermen. En rad med en bordkontroll, derimot, må alltid være inneholdt i en enkelt linje (selv om det er mulig å bla).
Generelt håndteres mange av funksjonene som tilbys av tabellkontrollen lokalt av systemets SAPgui-frontend, slik at du ikke trenger å programmere dem selv. Det eneste bemerkelsesverdige unntaket fra dette er vertikal rulling .
Eksempel (Transaksjon TZ60)


Syntaks
For å håndtere tabellkontroller i ABAP-programmer, må du erklære en kontroll i erklæringsdelen av programmet for hver tabellkontroll ved å bruke følgende uttalelse:

KONTROLLER  TYPE TABLEVIEW BRUKER SKJERM 

hvor er navnet på tabellkontrollen på en skjerm i ABAP-programmet. Kontrollen lar ABAP-programmet lese attributtene til tabellkontrollen og å påvirke kontrollen. Her er skjermnummeret der startverdiene til tabellen er lastet inn.
Markørposisjon for en tabellkontroll kan innstilles på følgende måter:
På PBO kan du sette markøren på et bestemt felt i en bestemt rad i en tabellkontroll.

SETT PEKERFELT  LINE 
 [OFFSET ]

Ved hjelp av valgfri tillegg OFFSET kan du angi forskyvningen av markøren i feltet som beskrevet under Angi markørposisjon.
På PAI kan du lese gjeldende markørposisjon.

FÅ MARKERFELT  LINE 
 ... 

I tillegg til informasjonen gitt under Finn ut markørposisjonen, inneholder feltet informasjon om hvilken rad i tabellkontrollen markøren er for øyeblikket. Du kan også bruke

FÅ MARKERLINJE 
.

for å bestemme raden i tabellkontrollen. SY-SUBRC lar deg sjekke om markøren er plassert i en rad med en tabellkontroll.
For å få tilsvarende linje i den interne tabellen:

FÅ MARKER-linjen 
.ind =  -topp_linje + 
 - 1.Les tabell  indeksind.

Systemvariabelen stepl - inneholder den gjeldende tabelllinjeindeksen i en loop ... endloop. Loopc - inneholder antall linjer som er synlige i tabellen
Slik oppretter du en tabellkontroll
1.Legg til et tabellkontrollelement på skjermen 2.
Gi et navn til tabellkontrollen. I ABAP-programmet erklærer du en struktur med det samme (KONTROLLER type TABLEVIEW USING SCREEN )
3.For å opprette felt, gå til funksjonen Dikt.

  • Skriv inn navnet på strukturen hvis felt du vil ha. (Hvis du vil at den skal velge den fra ordlisten til programmet ditt, klikk på den aktuelle puh-knappen).
  • Velg feltene du vil i feltlisten, og velg ok.
  • Klikk i tabellkontrollområdet

Hvis du vil ha en utvalgskolonne, merker du av for den aktuelle avkrysningsboksen i attributtene og gir den et navn. Opprett feltet i ABAP-programmet.
I PBO bør du ha uttalelsen

LOOP ved  BRUKER CONTROL .ENDLOOP.

I PAI burde du ha.

LOOP ved .ENDLOOP.

Det er innenfor løkkene at dataoverføring skjer mellom skjermen og den interne tabellen. Når du fyller ut den interne tabellen, bruk BESKRIV TABELL LINJER -linjer, for å lagre det totale antallet linjer i kontrollen. kan brukes til å kontrollere når dataoverføringen skjer.
Endre attributtene til individuelle celler midlertidig endre SKJERM-tabellen i PBO. Du kan endre attributtene til strukturen som er opprettet av CONTROLS-setningen

 -fast_cols etc er attributtene til kontrollen -cols-index etc er attributtene til kolonnene. -cols-screen-usynlig etc er skjermattributtene til hver kolonne.