L4G >  Columns  

Afficher tout Masquer tout

Columns permet 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

 

SYNTAXE 1  
Columns
classe [ ( champ [, champ])

SYNTAXE 2  
Columns
classe  With Mask( masque [, masque]) ]

 

Paramètres

Elément

Description

Restrictions

classe

Abréviation d'un fichier ouvert

le fichier doit déjà être ouvert

Champ

nom d'un champ de la table

Aucune.

masque

Abréviation d'un masque ouvert

le masque doit déjà être ouvert

 

Exemples

   # 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]

 

Description

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

Columns [abv] sans autre argument permet d' annuler le filtre des colonnes.

Columns s'applique de la même manière :

  • sur l'abréviation d'une table
  • sur l'abréviation d'un link

L'instruction Columns n'est prise en compte que par les instructions For et Rewrite. Les instructions Read et Write continuent de traiter 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. 

Pour identifier une colonne, il est possible d'utiliser un evalue. Exemple :    
Columns [LNK]([ATB]ZERO,=evalue("[ATB]INTITFIC"))

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.

 

Remarques

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 gagner en performance.    

 

Evolutions

Syntaxe 2.

 

Erreurs associées

Erreur

Description

ERCLAS ( 7)

Abréviation non trouvée

 

Mots-clés associés

LINK  -  FOR  -  REWRITE