SAP ABAP-tabelcontrole met voorbeelden
Tabelbesturingselementen en staplussen zijn objecten voor schermtabelweergave die u toevoegt aan een scherm in het scherm Painter.
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 het tabelbesturingselement lokaal afgehandeld door uw systeem SAPgui frontend, dus je hoeft ze niet zelf te programmeren. De enige opmerkelijke uitzondering hierop is verticaal scrollen.
Voorbeeld (transactie TZ60)
Syntaxis
Om tabelbesturingselementen in ABAP-programma's te verwerken, moet u een besturingselement in het declaratiegedeelte van het programma voor elk tabelbesturingselement declareren met behulp van de volgende instructie:
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.
De cursorpositie voor een tabelbesturingselement kan op de volgende manieren worden ingesteld:
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 selectievakje in de kenmerken aan en geeft u 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.