SAP ABAP-tabelcontrole met voorbeelden

Tabelbesturingselementen en staplussen zijn objecten voor schermtabelweergave die u aan een scherm in Screen Painter toevoegt.

Vanuit programmeeroogpunt zijn tafelbedieningen en staplussen vrijwel precies hetzelfde. Tabelbesturingselementen zijn eenvoudigweg verbeterde staplussen die gegevens weergeven met de look en feel die hoort bij tabellen in desktoptoepassingen.

Kenmerken van ABAP-tabelbeheer

Met tabelbesturingselementen kan de gebruiker:

  • Blader verticaal en horizontaal door de tabel
  • Pas de breedte van een kolom aan
  • Bladeren binnen een veld (wanneer de veldinhoud breder is dan het veld)
  • Selecteer tabelrijen of -kolommen
  • Herschik de volgorde van de kolommen
  • Bewaar de huidige weergave-instellingen voor toekomstig gebruik

Tabelbesturingselementen bieden ook speciale opmaakfuncties (sommige automatisch, sommige optioneel) waardoor tabellen gemakkelijker te bekijken en te gebruiken zijn. Tabelcontrole biedt –

  • automatisch formaat van de tabel (verticaal en horizontaal) wanneer de gebruiker het formaat van het venster wijzigt
  • scheidingslijnen tussen rijen en tussen kolommen (verticaal en horizontaal)
  • kolomkopvelden voor alle kolommen

Een kenmerk van staplussen is dat hun tabelrijen meer dan één regel op het scherm kunnen beslaan. Een rij van een tabelbesturingselement moet daarentegen altijd op één regel staan ​​(hoewel scrollen wel mogelijk is).

Over het algemeen worden veel van de functies van de tabelbesturing lokaal afgehandeld door de SAPgui-frontend van uw systeem, zodat u ze niet zelf hoeft te programmeren. De enige opmerkelijke uitzondering hierop is verticaal scrollen.

Voorbeeld (transactie TZ60)

SAP ABAP-tabelcontrole

Syntaxis

Om tabelbesturingselementen in ABAP-programma's af te handelen, moet u voor elk tabelbesturingselement een besturingselement declareren in het declaratiegedeelte van het programma met behulp van het volgendewing uitspraak:

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

waar is de naam van het tabelbesturingselement op een scherm in het ABAP-programma. Met de besturing kan het ABAP-programma de attributen van de tabelbesturing lezen en de besturing beïnvloeden. Hier, is het schermnummer waar de initiële waarden van de tabel worden geladen.

Cursorpositie voor een tafelbediening kan als volgt worden ingesteldwing manieren:

Bij PBO kunt u de cursor op een specifiek veld van een specifieke rij van een tabelbesturingselement plaatsen.

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

Met behulp van de optionele toevoeging OFFSET kunt u de offset van de cursor in het veld invoeren, zoals beschreven onder De cursorpositie instellen.

Bij PAI kunt u de huidige cursorpositie aflezen.

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

In aanvulling op de informatie onder De cursorpositie vinden, veld bevat informatie over op welke rij van het tabelbesturingselement de cursor zich momenteel bevindt. Je kan ook gebruiken

GET CURSOR LINE <lin>.

om de rij van het tabelbesturingselement te bepalen. Met SY-SUBRC kunt u controleren of de cursor in een rij van een tabelbesturingselement is geplaatst.

Voor het verkrijgen van de overeenkomstige regel van de interne tafel:

GET CURSOR line <lin>.

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

Read table <itab> index ind.

De systeemvariabele stepl – bevat de huidige tabelregelindex in een lus … endloop. Loopc – bevat het aantal regels dat zichtbaar is in de tabel

Om een ​​tabelbesturingselement te maken

1. Voeg een tabelbesturingselement toe aan uw scherm

2.Geef een naam aan het tabelbesturingselement. In het ABAP-programma declareert u een structuur met dezelfde ( CONTROLS typ TABLEVIEW MET SCHERM )

3.Om velden aan te maken, gaat u naar de functie Dict./Programmavelden.

  • Voer de naam in van de structuur waarvan u de velden wilt. (Als u wilt dat het uit het woordenboek van uw programma wordt gehaald, klikt u op de betreffende knop).
  • Kies in de veldenlijst de gewenste velden en kies ok.
  • Klik in het tabelcontrolegebied

Als u een selectiekolom wilt, vinkt u het juiste vinkje aan box in de attributen en geef het een naam. Maak het veld in de ABAP-programma.

In het PBO moet u de verklaring hebben

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

In de PAI zou je dat moeten hebben.

LOOP at <itab>.

ENDLOOP.

Het is binnen de lussen dat de gegevensoverdracht plaatsvindt tussen het scherm en de interne tabel. Wanneer u de interne tabel vult, gebruikt u DESCRIBE TABLE LIJNEN -lines, om het totale aantal regels in het besturingselement op te slaan. De FIELD-instructie kan worden gebruikt om te bepalen wanneer de gegevensoverdracht plaatsvindt

Om de attributen van individuele cellen te wijzigen, wijzigt u tijdelijk de SCREEN-tabel in de PBO. U kunt de attributen wijzigen van de structuur die door de CONTROLS-instructie is gemaakt

<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.