SAP ABAP-tabelcontrole met voorbeelden

Anonim

Tabelbesturingen en staploops zijn objecten voor schermtafelweergave die u aan een scherm in Screen Painter toevoegt.
Vanuit een programmeerstandpunt zijn de tafelbesturingen en step-loops bijna precies hetzelfde. Tabelbesturingen zijn eenvoudigweg verbeterde step-loops die gegevens weergeven met het uiterlijk en het gevoel dat hoort bij tabellen in desktoptoepassingen.
Met tafelbediening kan de gebruiker:

  • Blader verticaal en horizontaal door de tabel
  • Pas de breedte van een kolom aan
  • Scrollen binnen een veld (als 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

Tabelbesturingen bieden ook speciale opmaakfuncties (sommige automatisch, sommige optioneel) waardoor tabellen gemakkelijker te bekijken en te gebruiken zijn. Table Control biedt -

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

Een kenmerk van step loops is dat hun tabelrijen meer dan één regel op het scherm kunnen beslaan. Een rij van een tabelbesturing moet daarentegen altijd op één regel staan ​​(hoewel scrollen mogelijk is).
Over het algemeen worden veel van de functies die door de tabelbesturing worden geboden, lokaal afgehandeld door de SAPgui-frontend van uw systeem, dus u hoeft ze niet zelf te programmeren. De enige opmerkelijke uitzondering hierop is verticaal scrollen .
Voorbeeld (transactie TZ60)


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

BESTURING  TYPE TAFELVIEW MET SCHERM 

waarbij de naam is van de tabelbesturing op een scherm in het ABAP-programma. Met de besturing kan het ABAP-programma de attributen van de tafelbesturing lezen en de besturing beïnvloeden. Hier is het schermnummer waar de beginwaarden van de tabel worden geladen.
Cursorpositie voor een
tafelbesturingselement kan op de volgende manieren worden ingesteld: Bij PBO kunt u de cursor op een specifiek veld van een specifieke rij van een tafelbesturingselement plaatsen.

STEL PIJLVELD IN  LIJN 
 [OFFSET ]

Met de optionele toevoeging OFFSET kunt u de offset van de cursor in het veld invoeren zoals beschreven onder De cursorpositie instellen.
Bij PAI kun je de huidige cursorpositie aflezen.

KRIJG CURSORVELD  LIJN 

Naast de informatie die wordt gegeven onder De cursorpositie achterhalen, bevat veld informatie over op welke rij van het tafelbesturingselement de cursor momenteel staat. Je kan ook gebruiken

KRIJG CURSORLIJN 
.

om de rij van het tafelbesturingselement te bepalen. Met SY-SUBRC kunt u controleren of de cursor in een rij van een tabelbesturing staat.
Voor het verkrijgen van de overeenkomstige regel van de interne tabel:

KRIJG CURSOR regel 
.ind = 
 -top_line + 
 - 1.Lees tabel  index ind.

De systeemvariabele stepl - bevat de huidige tabelregelindex in een lus… endloop. Loopc - bevat het aantal lijnen dat zichtbaar is in de tabel.
Om een
tafelbesturingselement te maken 1. Voeg een tabelbesturingselement toe aan je scherm
2. Geef een naam aan het tafelbesturingselement. Declareer in het ABAP-programma een structuur met hetzelfde (CONTROLS type TABLEVIEW USING SCREEN )
3. Om velden te maken, ga naar de functie Dict./Program fields.

  • Voer de naam in van de structuur waarvan u de velden wilt. (Als u het wilt kiezen uit het woordenboek van uw programma, klikt u op de relevante knop).
  • Kies in de veldenlijst de velden die u wilt en kies ok.
  • Klik in het tabelcontrolegebied

Als u een selectiekolom wilt, vinkt u het juiste selectievakje in de attributen aan en geeft u deze een naam. Maak het veld in het ABAP-programma.
In het PBO moet u de verklaring hebben

LOOP op  GEBRUIKEN CONTROL .ENDLOOP.

In de PAI zou je moeten hebben.

LOOP bij .ENDLOOP.

Het is binnen de loops dat de gegevensoverdracht plaatsvindt tussen het scherm en de interne tabel. Wanneer u de interne tabel vult, gebruikt u DESCRIBE TABLE LINES -regels om het totale aantal regels in het besturingselement op te slaan. 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 kenmerken van de structuur die door de CONTROLS-instructie zijn gemaakt, wijzigen

 -fixed_cols etc zijn de attributen van de controle -cols-index etc zijn de attributen van de kolommen. -cols-screen-invisible etc zijn de schermattributen van elke kolom.