4D v16.3

SELECTION VERS TABLEAU

Accueil

 
4D v16.3
SELECTION VERS TABLEAU

SELECTION VERS TABLEAU 


 

SELECTION VERS TABLEAU {( leChamp | laTable ; tableau {; leChamp ; tableau {; leChamp2 ; tableau2 ; ... ; leChampN ; tableauN}}{; *})} 
Paramètre Type   Description
leChamp | laTable  Champ, Table in Champ à récupérer dans le tableau ou Table dont les numéros d'enregistrements sont à récupérer dans le tableau
tableau  Tableau in Tableau recevant les valeurs des champs ou les numéros d'enregistrements
leChamp  Champ in Champ à récupérer dans le tableau
tableau  Tableau in Tableau recevant les valeurs du champ
Opérateur in Attente d’exécution

La commande SELECTION VERS TABLEAU crée un ou plusieurs tableau(x) et y copie les valeurs des champ(s) ou les numéros d'enregistrement(s) de la sélection courante.

SELECTION VERS TABLEAU s'applique à la sélection courante de la table désignée par le premier paramètre (nom de table ou nom de champ). La commande peut réaliser les opérations suivantes :

  • Charger les valeurs d'un ou plusieurs champs,
  • Charger les numéros des enregistrements de la table, à l'aide de la syntaxe [table];tableau
  • Charger des valeurs de champs liés, s'il existe un lien automatique de N vers 1 entre les tables, ou si vous avez préalablement appelé la commande FIXER LIENS AUTOMATIQUES pour rendre automatiques les liens manuels N vers 1 (dans les deux cas, les valeurs peuvent être chargées à travers plusieurs niveaux de liens N vers 1 entre les tables).

Chaque tableau est typé en fonction du type de champ.

A noter toutefois que SELECTION VERS TABLEAU appliquée à un champ de type Heure créera un tableau de type Heure uniquement si le tableau n’a pas déjà été défini dans un autre type. Par exemple dans le contexte ci-dessous, le tableau monTab conservera le type Entier long :

 TABLEAU ENTIER LONG(monTab;0)
 SELECTION VERS TABLEAU([maTable]monChpHeure;monTab)

Si vous chargez les numéros des enregistrements, ils sont copiés dans un tableau de type Entier long.

Si vous passez un * en dernier paramètre, 4D n’exécute pas immédiatement la ligne d’instruction correspondante mais la stocke en mémoire ; vous pouvez ainsi empiler plusieurs lignes se terminant par un *. L’ensemble des lignes en attente sera exécuté par une instruction SELECTION VERS TABLEAU finale sans paramètre *. A cette fin, la commande peut être appelée sans aucun paramètre. Dans ce cas, les types des tableaux sont vérifiés au moment de l’exécution de la ligne finale (ne contenant pas de *).
A l’image de la commande CHERCHER, ce principe vous permet de scinder une instruction complexe en un ensemble de lignes, plus lisibles et plus faciles à maintenir. Il est également possible d’insérer des instructions intermédiaires ou de construire un tableau dans une boucle (cf. exemple 2 de la commande TABLEAU VERS SELECTION).

4D Server : La commande SELECTION VERS TABLEAU est optimisée pour 4D Server. Chaque tableau est créé sur le serveur puis envoyé en totalité sur le poste client.

ATTENTION : SELECTION VERS TABLEAU peut créer des tableaux de taille importante, en fonction de la taille de la sélection courante, ainsi que du type et de la taille des données à charger. Comme les tableaux résident en mémoire, il peut être utile de tester la taille des tableaux créés après l'exécution de la commande, ou d'utiliser une méthode projet d'appel sur erreur.

Note : Après un appel à SELECTION VERS TABLEAU, la sélection courante et l'enregistrement courant ne sont pas modifiés, mais l'enregistrement courant n'est plus chargé. Utilisez la commande CHARGER ENREGISTREMENT après un SELECTION VERS TABLEAU si vous souhaitez utiliser les valeurs des champs de l'enregistrement courant.

Dans l'exemple suivant, la table [Personnes] dispose d'un lien automatique vers la table [Sociétés]. Les deux tableaux tabNoms et tabAdresseSociétés sont dimensionnés en fonction du nombre d'enregistrements dans la sélection de la table [Personnes] et contiennent des informations venant des deux tables :

 SELECTION VERS TABLEAU([Personnes]Nom;tabNoms;[Sociétés]Adresse;tabAdresseSociétés)

L'exemple ci-dessous retourne les numéros d'enregistrements de la table [Clients] dans le tableau tabNumEnr et les valeurs du champ [Clients]Noms dans le tableau tabNoms :

 SELECTION VERS TABLEAU([Clients];tabNumEnr;[Clients]Noms;tabNoms)

Le même exemple peut être écrit :

 SELECTION VERS TABLEAU([Clients];tabNumEnr;*)
 SELECTION VERS TABLEAU([Clients]Noms;tabNoms;*)
 SELECTION VERS TABLEAU



Voir aussi  

APPELER SUR ERREUR
FIXER LIENS AUTOMATIQUES
SELECTION LIMITEE VERS TABLEAU
TABLEAU ENTIER LONG SUR SELECTION
TABLEAU MULTI TRI
TABLEAU VERS SELECTION

 
PROPRIÉTÉS 

Produit : 4D
Thème : Tableaux
Numéro : 260
Nom intl. : SELECTION TO ARRAY

Commande(s) éligible(s) à l'exécution dans un process préemptifComportement différent en mode distant

 
HISTORIQUE 

Créé : < 4D v6
Modifié : 4D v13

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)