Controllo tabella SAP ABAP con esempi

Anonim

I controlli delle tabelle e le sequenze di passi sono oggetti per la visualizzazione della tabella dello schermo che vengono aggiunti a uno schermo in Screen Painter.
Dal punto di vista della programmazione, i controlli della tabella e gli step loop sono quasi esattamente gli stessi. I controlli delle tabelle sono semplicemente cicli di passi migliorati che visualizzano i dati con l'aspetto associato alle tabelle nelle applicazioni desktop.
Con i controlli della tabella, l'utente può:

  • Scorri la tabella verticalmente e orizzontalmente
  • Ridimensiona la larghezza di una colonna
  • Scorri all'interno di un campo (quando il contenuto del campo è più ampio del campo)
  • Seleziona le righe o le colonne della tabella
  • Riordina la sequenza di colonne
  • Salvare le impostazioni di visualizzazione correnti per un utilizzo futuro

I controlli delle tabelle offrono anche funzioni di formattazione speciali (alcune automatiche, altre facoltative) che semplificano la visualizzazione e l'utilizzo delle tabelle. Table Control fornisce:

  • ridimensionamento automatico della tabella (verticale e orizzontale) quando l'utente ridimensiona la finestra
  • linee di separazione tra le righe e tra le colonne (verticale e orizzontale)
  • campi di intestazione di colonna per tutte le colonne

Una caratteristica dei cicli di passi è che le loro righe di tabella possono estendersi su più di una riga sullo schermo. Una riga di un controllo di tabella, invece, deve essere sempre contenuta in una singola riga (sebbene sia possibile lo scorrimento).
In generale, molte delle funzionalità fornite dal controllo tabella sono gestite localmente dal frontend SAPgui del sistema, quindi non è necessario programmarle da soli. L'unica eccezione degna di nota è lo scorrimento verticale .
Esempio (transazione TZ60)


Sintassi
Per gestire i controlli di tabella nei programmi ABAP, è necessario dichiarare un controllo nella parte di dichiarazione del programma per ciascun controllo di tabella utilizzando la seguente istruzione:

CONTROLLI  TIPO TABELLA VISUALIZZAZIONE UTILIZZANDO LO SCHERMO 

dove è il nome del controllo tabella su una schermata nel programma ABAP. Il controllo consente al programma ABAP di leggere gli attributi del controllo tabella e di influenzare il controllo. Qui, è il numero di schermata in cui vengono caricati i valori iniziali della tabella.
La posizione del cursore per un controllo tabella può essere impostata nei seguenti modi:
In PBO è possibile impostare il cursore su un campo specifico di una riga specifica di un controllo tabella.

SET CURSOR FIELD  LINE 
 [OFFSET ]

Utilizzando l'aggiunta opzionale OFFSET, è possibile immettere l'offset del cursore nel campo come descritto in Impostazione della posizione del cursore.
In PAI puoi leggere la posizione corrente del cursore.

OTTIENI IL CAMPO DEL CURSORE  LINEA 
 ... 

Oltre alle informazioni fornite in Individuazione della posizione del cursore, il campo contiene informazioni su quale riga del controllo tabella si trova attualmente su cui si trova il cursore. Puoi anche usare

OTTIENI LA ​​LINEA DEL CURSORE 
.

per determinare la riga del controllo tabella. SY-SUBRC consente di controllare se il cursore è posizionato in una riga di un controllo tabella.
Per ottenere la riga corrispondente della tabella interna:

OTTIENI CURSORE riga 
.ind = 
 -top_line + 
 - 1.Leggi la tabella  index ind.

La variabile di sistema stepl - contiene l'indice della riga della tabella corrente in un ciclo… endloop. Loopc - contiene il numero di righe visibili nella tabella
Per creare un controllo tabella
1. Aggiungere un elemento di controllo tabella allo schermo
2. Assegnare un nome al controllo tabella. Nel programma ABAP dichiarare una struttura con lo stesso (CONTROLS tipo TABLEVIEW USING SCREEN )
3.Per creare campi andare alla funzione Dict./Program fields.

  • Inserisci il nome della struttura di cui desideri i campi. (Se vuoi che lo prenda dal dizionario del tuo programma fai clic sul relativo pulsante).
  • Nella lista dei campi scegli i campi che desideri e scegli ok.
  • Fare clic nell'area di controllo della tabella

Se si desidera una colonna di selezione, selezionare la casella di controllo appropriata negli attributi e assegnarle un nome. Crea il campo nel programma ABAP.
Nel PBO dovresti avere la dichiarazione

LOOP in  USANDO CONTROL .ENDLOOP.

Nel PAI dovresti avere.

LOOP in .ENDLOOP.

È all'interno dei cicli che avviene il trasferimento dei dati tra lo schermo e la tabella interna. Quando si popola la tabella interna, utilizzare DESCRIBE TABLE LINES -lines, per memorizzare il numero totale di righe nel controllo. può essere utilizzato per controllare quando avviene il trasferimento dei dati
Per modificare gli attributi delle singole celle modificare temporaneamente la tabella SCREEN nel PBO. È possibile modificare gli attributi della struttura creata dall'istruzione CONTROLS

 -fixed_cols ecc sono gli attributi del controllo -cols-index ecc sono gli attributi delle colonne. -cols-screen-invisible ecc sono gli attributi dello schermo di ogni colonna.