SAP Contrôle de table ABAP avec exemples
Les contrôles de table et les boucles d'étape sont des objets d'affichage de tableau d'écran que vous ajoutez à un écran dans l'écran. Painter.
Du point de vue de la programmation, les commandes de table et les boucles pas à pas sont presque exactement les mêmes. Les contrôles de table sont simplement des boucles d'étape améliorées qui affichent les données avec l'apparence associée aux tableaux dans les applications de bureau.
Caractéristiques du contrôle de table ABAP
Avec les champs 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
- Enregistrez les paramètres d'affichage actuels pour une utilisation future
Les contrôles de table offrent également des fonctionnalités de formatage spéciales (certaines automatiques, d’autres facultatives) qui facilitent la visualisation et l’utilisation des tableaux. Le contrôle de table 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 les lignes de leur tableau peuvent s'étendre sur plus d'une ligne à l'écran. En revanche, une ligne d'un champ table doit toujours être contenue dans une seule ligne (même si le défilement est possible).
En général, la plupart des fonctionnalités fournies par le contrôle table sont gérées localement par le système de votre système. SAPinterface graphique, vous n'avez donc pas besoin de les programmer vous-même. La seule exception notable à cette règle 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 :
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>
où est le nom du contrôle 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 d'é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 :
Chez 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 <f> LINE <lin> [OFFSET <off>]
À l'aide de l'ajout optionnel OFFSET, vous pouvez saisir le décalage du curseur dans le champ comme décrit sous Définition de la position du curseur.
Sur PAI, vous pouvez lire la position actuelle du curseur.
GET CURSOR FIELD <f> LINE <lin> ...
En plus des informations fournies sous Connaître 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
GET CURSOR LINE <lin>.
pour déterminer la ligne du champ table. SY-SUBRC permet de vérifier si le curseur est placé dans une ligne d'un champ table.
Pour obtenir la ligne correspondante du table interne:
GET CURSOR line <lin>. ind = <table_control>-top_line + <lin> - 1. Read table <itab> index ind.
La variable système stepl – contient l'index de ligne de table actuel dans une boucle… endloop. Loopc – contient le nombre de lignes visibles dans le tableau
Pour créer un champ table
1.Ajoutez un élément de contrôle de table à votre écran
2.Donnez un nom au champ table. Dans le programme ABAP, déclarez une structure avec le même ( CONTROLS tapez TABLEVIEW À L'AIDE DE L'ÉCRAN )
3.Pour créer des champs, accédez à la fonction Champs Dict./Programme.
- Saisissez le nom de la structure dont vous souhaitez les champs. (Si vous souhaitez qu'il le sélectionne dans le dictionnaire de votre programme, cliquez sur le bouton approprié).
- Dans la liste des champs, choisissez les champs souhaités et choisissez ok.
- Cliquez dans la zone de champ table
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
LOOP at <itab> USING CONTROL <cntrl_name>. ENDLOOP.
Dans le PAI, vous devriez l'avoir.
LOOP at <itab>. ENDLOOP.
C'est dans les boucles que le transfert de données s'effectue entre l'écran et la table interne. Lorsque vous remplissez la table interne, utilisez DESCRIBE TABLE. LIGNES -lines, pour stocker le nombre total de lignes dans le contrôle. L'instruction FIELD peut être utilisée 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
<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.