COLUMNS |
Columnspermet de restreindre le nombre de colonnes (ou champs) alimentés dans ou depuis la classe [F] lors des instructions de lecture et d'écriture dans la base de données.
SYNTAXE 1
Columns
SYNTAXE 2
Columnsclasse With Mask
Elément | Description | Restrictions |
Abréviation d'un fichier ouvert | le fichier doit déjà être ouvert | |
nom d'un champ de la table | Aucune. | |
Abréviation d'un masque ouvert | le masque doit déjà être ouvert |
# Lecture puis ré-écriture limitées aux 2 champs code et nom du client
Local File BPARTNER [BPR]
# Position du filtre sur le code et nom du client
Columns [BPR](BPRNUM,BPRNAM)
For [BPR]
...
Rewrite [BPR]
Next
# suppression du filtre : toutes les colonnes sont de nouveau disponibles
Columns [BPR]
# Filtre de colonnes sur la classe issue du link
Local File ORDERS [ORD]
Local File ITMMASTER [ITM]
Link [ORD] with [ITM]ITM0=[F:ORD]ITMREF as [ORI]
# Position du filtre sur la réf.article, la dés. article, le n° d'ordre
Columns [ORI]([ITM]ITMREF,[ITM]ITMDES1,[ORD]WIPNUM)
For [ORI]
...
Next
# suppression du filtre : toutes les colonnes sont de nouveau disponibles
Columns [ORI]
# Filtre de colonnes sur la classe issue du link
Local File ORDERS [ORD]
Local File ITMMASTER [ITM]
Link [ORD] with [ITM]ITM0=[F:ORD]ITMREF as [ORI]
# Position du filtre sur la réf.article, la dés. article, et tous les champs de la table [ORD]
Columns [ORI]([ITM]ITMREF,[ITM]ITMDES1,[ORD])
For [ORI]
...
Next
# suppression du filtre : toutes les colonnes sont de nouveau disponibles
Columns [ORI]
Columnspermet de restreindre l'accès aux colonnes d'une table préalablement ouverte, lors des instructions de lecture et d'écriture dans la base de données. Ceci permet d'accélérer les accès aux données de cette table.
Columnss'applique de la même manière :
L'instruction Columnsn'est prise en compte que par les instructions For et Rewrite.Les instructions Readet Write continuent detraiter l'ensemble de la classe[F].
La classe [F] continue d'exister pour les variables exclues par l'instruction Columns, mais elles ne sont plus alimentées par l'instruction For.
Si une instruction Columns vient après une autre instruction Columns, elle annule et remplace la précédente. On se servira donc de l'instruction Columns [abv] sans autre argument pour annuler tout éventuel filtre sur colonne.
Pour identifier une colonne, il est possible d'utiliser un evalue. Exemple :
Columns
Pour un champ dimensionné, voici les différentes possibilités d'identification des colonnes :
Sélection d'un poste : Columns [LNK]([ATB]TOTO(5))
Sélection du tableau complet : Columns[LNK]([ATB]TOTO)
Sélection d'une tranche de postes : Columns[LNK]([ATB]TOTO(1..8))
La syntaxe 2 donne la possibilité de préciser un ou plusieurs masques. Dans ce cas, le principe appliqué est le suivant : une colonne est sélectionnée pour une table lorsqu'un champ de même nom est présent dans l'un des masques déclarés.
Il y a un niveau de localité attaché aux fichiers ouverts par Local File. Par contre, il n'y en a pas attaché à l'ordre Columns. Ainsi, si cet ordre apparaît dans un sous programme sur une table précédemment ouverte (et - bien sûr - non réouverte dans le sous-programme) , il sera encore actif au retour dans le traitement appelant.
On peut mettre l'instruction Columns après l'instruction link pour se limiter aux champs utiles et s'affranchir des limites techniques liées aux bases de données.
Syntaxe 2.
ERCLAS( 7) | Abréviation non trouvée |
SOMMAIRE
Adonix X3(r) L4G |