Contrôle de table SAP ABAP avec exemples

Anonim

Les commandes de tableau et les boucles pas à pas sont des objets d'affichage de tableau d'écran que vous ajoutez à un écran dans Screen Painter.
Du point de vue de la programmation, les commandes de table et les boucles de pas sont presque exactement les mêmes. Les contrôles de tableau sont simplement des boucles d'étape améliorées qui affichent des données avec l'aspect et la convivialité associés aux tableaux dans les applications de bureau.
Avec les contrôles de table, l'utilisateur peut:

  • Faites défiler le tableau verticalement et horizontalement
  • Redimensionner la largeur d'une colonne
  • Faire défiler un champ (lorsque le contenu du champ est plus large que le champ)
  • Sélectionnez les lignes ou les colonnes du tableau
  • Réorganiser la séquence des colonnes
  • Enregistrer les paramètres d'affichage actuels pour une utilisation future

Les contrôles de tableau offrent également des fonctionnalités de mise en forme spéciales (certaines automatiques, d'autres facultatives) qui facilitent la visualisation et l'utilisation des tableaux. Table Control fournit -

  • redimensionnement automatique du tableau (vertical et horizontal) lorsque l'utilisateur redimensionne la fenêtre
  • lignes de séparation entre les lignes et entre les colonnes (verticales et horizontales)
  • champs d'en-tête de colonne pour toutes les colonnes

Une caractéristique des boucles pas à pas est que leurs lignes de tableau peuvent s'étendre sur plus d'une ligne à l'écran. Une ligne d'un champ de table, par contre, doit toujours être contenue dans une seule ligne (bien que le défilement soit possible).
En général, de nombreuses fonctionnalités fournies par le contrôle de table sont gérées localement par l'interface SAPgui de votre système, vous n'avez donc pas besoin de les programmer vous-même. La seule exception notable à cela est le défilement vertical .
Exemple (transaction TZ60)


Syntaxe
Pour gérer les contrôles de table dans les programmes ABAP, vous devez déclarer un contrôle dans la partie déclaration du programme pour chaque contrôle de table à l'aide de l'instruction suivante:

CONTRÔLES  TYPE VUE TABLE À L'AIDE DE L'ÉCRAN 

est le nom du champ de table sur un écran du programme ABAP. Le champ permet au programme ABAP de lire les attributs du champ table et d'influencer le champ. Ici, est le numéro de l'écran où les valeurs initiales de la table sont chargées.
La position du curseur pour un contrôle de table peut être définie des manières suivantes:
Dans PBO, vous pouvez placer le curseur sur un champ spécifique d'une ligne spécifique d'un contrôle de table.

SET CURSOR FIELD  LINE 
 [OFFSET ]

En utilisant l'addition optionnelle OFFSET, vous pouvez entrer le décalage du curseur dans le champ comme décrit sous Définition de la position du curseur.
À PAI, vous pouvez lire la position actuelle du curseur.

GET CURSOR FIELD  LINE 

En plus des informations données sous Recherche de la position du curseur, le champ contient des informations sur la ligne du contrôle de table sur laquelle se trouve actuellement le curseur. Vous pouvez aussi utiliser

OBTENIR LA LIGNE DE CURSEUR 
.

pour déterminer la ligne du contrôle de table. SY-SUBRC vous permet de vérifier si le curseur est placé dans une ligne d'un champ de table.
Pour obtenir la ligne correspondante de la table interne:

GET CURSOR ligne 
.ind = 
 -top_line + 
 - 1.Lire l'index de la table .

La variable système stepl - contient l'index de la ligne de table courante dans une boucle… endloop. Loopc - contient le nombre de lignes visibles dans la table
Pour créer un contrôle de table
1.Ajoutez un élément de contrôle de table à votre écran
2.Donnez un nom au contrôle de table. Dans le programme ABAP, déclarez une structure avec le même (CONTROLS type TABLEVIEW USING SCREEN )
3.Pour créer des champs, accédez à la fonction Dict./Program fields.

  • Entrez le nom de la structure dont vous voulez les champs. (Si vous voulez qu'il le choisisse dans le dictionnaire de votre programme, cliquez sur le bouton correspondant).
  • Dans la liste des champs, choisissez les champs souhaités et choisissez ok.
  • Cliquez dans la zone de contrôle du tableau

Si vous souhaitez une colonne de sélection, cochez la case appropriée dans les attributs et donnez-lui un nom. Créez le champ dans le programme ABAP.
Dans le DPB, vous devriez avoir la déclaration

BOUCLE à  UTILISATION DU CONTRÔLE .ENDLOOP.

Dans le PAI, vous devriez avoir.

BOUCLE sur .ENDLOOP.

C'est dans les boucles que le transfert de données se produit entre l'écran et la table interne.Lorsque vous remplissez la table interne, utilisez DESCRIBE TABLE LINES -lines, pour stocker le nombre total de lignes dans le contrôle. peut être utilisé pour contrôler le moment où le transfert de données a lieu.
Pour modifier les attributs de cellules individuelles, modifiez temporairement la table SCREEN dans le PBO. Vous pouvez modifier les attributs de la structure créée par l'instruction CONTROLS

 -fixed_cols etc sont les attributs du contrôle -cols-index etc sont les attributs des colonnes. -cols-screen-invisible etc sont les attributs d'écran de chaque colonne.