Tabelkontroller og trinløkker er objekter til skærmtabeldisplay, som du føjer til en skærm i skærmmaleren.
Fra et programmeringsmæssigt synspunkt er tabelkontroller og trinløkker næsten nøjagtigt de samme. Tabelkontroller er simpelthen forbedrede trinsløjfer, der viser data med udseendet og følelsen forbundet med tabeller i desktop-applikationer.
Med bordkontroller kan brugeren:
- Rul gennem bordet lodret og vandret
- Omstørr bredden af en søjle igen
- Rul inden for et felt (når feltindholdet er bredere end feltet)
- Vælg tabelrækker eller kolonner
- Omarranger rækkefølgen af kolonner
- Gem de aktuelle skærmindstillinger til fremtidig brug
Tabelkontroller tilbyder også specielle formateringsfunktioner (nogle automatiske, nogle valgfri), der gør tabeller lettere at se på og bruge. Tabelstyring giver -
- automatisk størrelse på tabel (lodret og vandret), når brugeren ændrer størrelsen på vinduet
- skillelinjer mellem rækker og mellem kolonner (lodret og vandret)
- kolonneoverskriftsfelter for alle kolonner
Et træk ved trinsløjfer er, at deres tabelrækker kan strække sig over mere end en linje på skærmen. En række med en bordkontrol skal derimod altid være indeholdt i en enkelt linje (selvom det er muligt at rulle).
Generelt håndteres mange af funktionerne fra bordkontrollen lokalt af dit systems SAPgui-frontend, så du behøver ikke at programmere dem selv. Den eneste bemærkelsesværdige undtagelse herfra er lodret rulning .
Eksempel (Transaktion TZ60)
Syntaks
For at håndtere tabelkontroller i ABAP-programmer skal du erklære en kontrol i programdeklarationsdelen for hver tabelkontrol ved hjælp af følgende udsagn:
KONTROLLERTYPETABELVISNING MED SKÆRM
hvor
Markørposition for en tabelkontrol kan indstilles på følgende måder:
På PBO kan du indstille markøren på et bestemt felt i en bestemt række i en tabelkontrol.
INDSTILL MARKERFELTLINE [OFFSET ]
Ved hjælp af den valgfri tilføjelse OFFSET kan du indtaste forskydningen af markøren i feltet som beskrevet under Indstilling af markørposition.
På PAI kan du læse den aktuelle markørposition.
FÅ MARKERFELTLINE ...
Ud over de oplysninger, der er givet under Find ud af markørpositionen, indeholder feltet
FÅ MARKERLINJE.
for at bestemme rækken af bordkontrollen. SY-SUBRC giver dig mulighed for at kontrollere, om markøren er placeret i en række af en bordkontrol.
For at få den tilsvarende linje i den interne tabel:
FÅ CURSOR-linje.ind = -top_line + - 1.Læs tabel indeks ind.
Systemvariablen stepl - indeholder det aktuelle tabellinjeindeks i en loop ... endloop. Loopc - indeholder antallet af linjer, der er synlige i tabellen
Sådan oprettes en
tabelkontrol 1.Føj et bordkontrolelement til din skærm
2. Giv et navn til bordkontrollen. I ABAP-programmet erklæres en struktur med den samme (KONTROLLER
oprette felter skal du gå til funktionen Dict./Program-felter.
- Indtast navnet på den struktur, hvis felter du vil have. (Hvis du vil have det til at vælge det fra ordbogen i dit program, skal du klikke på den relevante puh-knap).
- Vælg de ønskede felter på feltlisten, og vælg ok.
- Klik i tabelkontrolområdet
Hvis du vil have en markeringskolonne, skal du markere det relevante afkrydsningsfelt i attributterne og give det et navn. Opret feltet i ABAP-programmet.
I PBO skal du have erklæringen
LOOP vedBRUGER CONTROL .ENDLOOP.
I PAI skulle du have.
LOOP ved.ENDLOOP.
Det er inden for sløjferne, at dataoverførsel sker mellem skærmen og den interne tabel. Når du udfylder den interne tabel, skal du BESKRIV TABEL
At ændre attributterne for individuelle celler midlertidigt ændre SKÆRM-tabellen i PBO. Du kan ændre attributterne for strukturen oprettet af CONTROLS-sætningen
-fixed_cols osv. er kontrolelementets attributter -cols-index osv. er kolonnernes attributter. -cols-screen-usynlig osv. er skærmattributterne for hver kolonne.