SAP ABAP tabelkontrol med eksempler

Anonim

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:

KONTROLLER  TYPETABELVISNING MED SKÆRM 

hvor er navnet på bordkontrollen på en skærm i ABAP-programmet. Kontrollen giver ABAP-programmet mulighed for at læse attributterne til bordkontrollen og påvirke kontrollen. Her er det skærmnummer, hvor de indledende værdier for tabellen indlæses.
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 MARKERFELT  LINE 
 [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Å MARKERFELT  LINE 
 ... 

Ud over de oplysninger, der er givet under Find ud af markørpositionen, indeholder feltet oplysninger om, hvilken række i bordkontrollen markøren er i øjeblikket. Du kan også bruge

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 type TABLEVIEW USING SCREEN ) 3. For at
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 ved  BRUGER 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 LINJER -linjer, for at gemme det samlede antal linjer i kontrolelementet. kan bruges til at kontrollere, hvornår dataoverførslen finder sted
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.