SAP Controllo tabella ABAP con esempi

I controlli della tabella e i cicli di passaggi sono oggetti per la visualizzazione della tabella su schermo che aggiungi a una schermata in Screen Painter.

Dal punto di vista della programmazione, i controlli della tabella e i cicli di passi sono quasi esattamente gli stessi. I controlli delle tabelle sono semplicemente cicli di passaggi migliorati che visualizzano i dati con l'aspetto associato alle tabelle nelle applicazioni desktop.

Caratteristiche del controllo tabella ABAP

Con i controlli della tabella, l'utente può:

  • Scorri la tabella verticalmente e orizzontalmente
  • Ridimensionare la larghezza di una colonna
  • Scorri all'interno di un campo (quando i contenuti del campo sono più larghi del campo)
  • Seleziona le righe o le colonne della tabella
  • Riordina la sequenza delle colonne
  • Salvare le impostazioni di visualizzazione correnti per un uso futuro

I controlli della tabella offrono anche funzionalità di formattazione speciali (alcune automatiche, altre facoltative) che semplificano la visualizzazione e l'utilizzo delle tabelle. Il controllo tabella fornisce:

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

Una caratteristica dei cicli di passi è che le righe della tabella possono estendersi su più di una riga sullo schermo. Una riga di un controllo di tabella, invece, deve essere sempre contenuta in un'unica riga (anche se è possibile lo scorrimento).

In generale, molte delle funzionalità fornite dal controllo tabella vengono gestite localmente dal sistema SAPfrontend gui, quindi non è necessario programmarli da soli. L'unica eccezione degna di nota è lo scorrimento verticale.

Esempio (Transazione TZ60)

SAP Controllo tabella ABAP

Sintassi

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

CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>

Dove è il nome del controllo della tabella su una schermata nel programma ABAP. Il controllo consente al programma ABAP di leggere gli attributi del controllo della tabella e di influenzare il controllo. Qui, è il numero della 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 posizionare il cursore su un campo specifico di una riga specifica di un controllo della tabella.

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

Utilizzando l'aggiunta opzionale OFFSET, è possibile inserire l'offset del cursore nel campo come descritto in Impostazione della posizione del cursore.

In PAI è possibile leggere la posizione corrente del cursore.

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

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

GET CURSOR LINE <lin>.

per determinare la riga del controllo della tabella. SY-SUBRC ti consente di verificare se il cursore è posizionato in una riga di un controllo di tabella.

Per ottenere la riga corrispondente del file tavolo interno:

GET CURSOR line <lin>.

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

Read table <itab> 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.Aggiungi un elemento di controllo della tabella allo schermo

2.Dai un nome al controllo della tabella. Nel programma ABAP dichiarare una struttura con la stessa ( CONTROLS digitare TABLEVIEW USANDO SCHERMO )

3.Per creare i campi accedere alla funzione Campi Dict./Programma.

  • Inserisci il nome della struttura di cui desideri i campi. (Se vuoi selezionarlo dal dizionario del tuo programma clicca sul relativo pulsante).
  • Nell'elenco dei campi scegli i campi desiderati e scegli ok.
  • Fare clic nell'area di controllo della tabella

Se vuoi una colonna di selezione, seleziona la casella di controllo appropriata negli attributi e assegnale un nome. Crea il campo in Programma ABAP.

Nell'UPB dovresti avere la dichiarazione

LOOP at <itab> USING CONTROL <cntrl_name>.

ENDLOOP.

Nel PAI dovresti avere.

LOOP at <itab>.

ENDLOOP.

È all'interno dei loop che avviene il trasferimento dei dati tra lo schermo e la tabella interna. Quando si compila la tabella interna utilizzare DESCRIBE TABLE LINEE -lines, per memorizzare il numero totale di righe nel controllo. L'istruzione FIELD può essere utilizzata 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

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