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:
KONTROLLERTYPE TABLEVIEW BRUKER SKJERM
hvor
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 PEKERFELTLINE [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Å MARKERFELTLINE ...
I tillegg til informasjonen gitt under Finn ut markørposisjonen, inneholder feltet
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
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 vedBRUKER 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
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.