SAP ABAP-tabelkontrol med eksempler

Tabelkontroller og trinløkker er objekter til skærmtabelvisning, som du tilføjer til en skærm på skærmen Painter.

Fra et programmeringssynspunkt er bordstyringer og trinløkker næsten nøjagtig de samme. Tabelkontroller er simpelthen forbedrede trinløkker, der viser data med det udseende og følelse, der er forbundet med tabeller i desktopapplikationer.

Funktioner af ABAP Table Control

Med bordkontrol kan brugeren:

  • Rul gennem tabellen lodret og vandret
  • Tilpas størrelsen på en kolonnes bredde
  • Rul i 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 valgfrie), der gør tabeller nemmere at se på og bruge. Bordstyring giver –

  • automatisk ændring af tabelstørrelse (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 trinløkker er, at deres tabelrækker kan spænde over mere end én linje på skærmen. En række af en tabelkontrol skal på den anden side altid være indeholdt i en enkelt linje (selvom det er muligt at rulle).

Generelt håndteres mange af funktionerne i tabelstyringen lokalt af dit systems SAPgui frontend, så du behøver ikke at programmere dem selv. Den eneste bemærkelsesværdige undtagelse fra dette er lodret rulning.

Eksempel (Transaktion TZ60)

SAP ABAP bordkontrol

Syntaks

For at håndtere tabelkontrolelementer i ABAP-programmer skal du erklære et kontrolelement i deklarationsdelen af ​​programmet for hver tabelkontrol ved hjælp af følgende sætning:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

hvor er navnet på bordkontrollen på en skærm i ABAP-programmet. Styringen gør det muligt for ABAP-programmet at læse tabelstyringens attributter og påvirke styringen. Her, er skærmnummeret, hvor de indledende værdier af tabellen er indlæst.

Markørposition for en tabelkontrol kan indstilles på følgende måder:

På PBO kan du sætte markøren på et bestemt felt i en specifik række i en tabelkontrol.

SET CURSOR FIELD <f> LINE <lin> [OFFSET <off>]

Ved at bruge den valgfri tilføjelse OFFSET kan du indtaste markørens forskydning i feltet som beskrevet under Indstilling af markørposition.

På PAI kan du aflæse den aktuelle markørposition.

GET CURSOR FIELD <f> LINE <lin> ...

Ud over oplysningerne i feltet Find ud af markørpositionen indeholder information om, hvilken række i tabelkontrollen markøren er på i øjeblikket. Du kan også bruge

GET CURSOR LINE <lin>.

for at bestemme rækken af ​​tabelkontrollen. SY-SUBRC giver dig mulighed for at kontrollere, om markøren er placeret i en række af en tabelkontrol.

For at få den tilsvarende linje af indvendigt bord:

GET CURSOR line <lin>.

ind = <table_control>-top_line + <lin> - 1.

Read table <itab> index ind.

Systemvariablen stepl – indeholder det aktuelle tabellinjeindeks i en loop … endloop. Loopc – indeholder antallet af synlige linjer i tabellen

For at oprette en tabelkontrol

1. Tilføj et bordkontrolelement til din skærm

2.Giv et navn til tabelkontrollen. I ABAP-programmet erklærer en struktur med samme ( KONTROLLER skriv TABELVISNING VED HJÆLP AF SKÆRM )

3.For at oprette felter skal du gå til funktionen Dict./Program fields.

  • Indtast navnet på den struktur, hvis felter du ønsker. (Hvis du vil have det til at vælge det fra ordbogen for dit program, klik på den relevante knap).
  • I feltlisten skal du vælge de felter du ønsker og vælge ok.
  • Klik i tabelkontrolområdet

Hvis du ønsker en valgkolonne, skal du markere det relevante afkrydsningsfelt i attributterne og give den et navn. Opret feltet i ABAP program.

I PBO'en skal du have redegørelsen

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

I PAI skal du have.

LOOP at <itab>.

ENDLOOP.

Det er inden for sløjferne, at dataoverførslen sker mellem skærmen og den interne tabel. Når du udfylder den interne tabel, skal du bruge DESCRIBE TABLE LINJER -linjer, for at gemme det samlede antal linjer i kontrolelementet. FIELD-sætningen kan bruges til at kontrollere, hvornår dataoverførslen finder sted

For at ændre attributterne for individuelle celler skal du midlertidigt ændre SCREEN-tabellen i PBO'en. Du kan ændre attributterne for den struktur, der er oprettet af CONTROLS-sætningen

<cntrl>-fixed_cols etc are the attributes of the control

<cntrl>-cols-index etc are the attributes of the columns.

<cntrl>-cols-screen-invisible etc are the screen attributes of each column.