4D v16.3

TABLEAU VERS SELECTION

Accueil

 
4D v16.3
TABLEAU VERS SELECTION

TABLEAU VERS SELECTION 


 

TABLEAU VERS SELECTION {( tableau ; leChamp {; tableau2 ; leChamp2 ; ... ; tableauN ; leChampN}{; *} )} 
Paramètre Type   Description
tableau  Tableau in Tableau à copier dans la sélection
leChamp  Champ in Champ recevant les valeurs du tableau
Opérateur in Attente d’exécution

La commande TABLEAU VERS SELECTION copie un ou plusieurs tableau(x) vers une sélection d'enregistrements. Tous les champs listés doivent appartenir à la même table.

Si une sélection existe au moment de l'appel, les éléments du tableau sont copiés dans les enregistrements en fonction de l'ordre du tableau et de l'ordre des enregistrements. Si le nombre d'éléments du tableau est supérieur au nombre d'enregistrements de la sélection courante, de nouveaux enregistrements sont créés. Les enregistrements, qu'ils soient nouveaux ou existants, sont automatiquement sauvegardés.

Note : Comme elle permet de créer de nouveaux enregistrements, cette commande ne tient pas compte de l'état lecture seulement éventuel de la table (cf. Verrouillage d'enregistrements).

Tous les tableaux doivent avoir le même nombre d'éléments. Si des tableaux ont des tailles différentes, une erreur de syntaxe est générée.

Cette commande effectue l'opération inverse de SELECTION VERS TABLEAU. Cependant, TABLEAU VERS SELECTION ne permet pas d'utiliser de champs en provenance de tables différentes ni de tables liées, même si un lien automatique existe.

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 TABLEAU VERS SELECTION finale sans paramètre *. A cette fin, la commande peut être appelée sans aucun paramètre.
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.

ATTENTION : Comme TABLEAU VERS SELECTION remplace les informations éventuellement présentes dans les enregistrements existants, cette commande doit être utilisée avec prudence. Si un enregistrement est verrouillé par un autre process pendant l'exécution de la commande TABLEAU VERS SELECTION, il n'est pas modifié. Tous les enregistrements verrouillés sont placés dans l'ensemble LockedSet. Après l'exécution de TABLEAU VERS SELECTION, vous pouvez tester si l'ensemble LockedSet contient des enregistrements qui étaient verrouillés.

4D Server : Cette commande est optimisée pour 4D Server. Le tableau est envoyé au serveur depuis le poste client. Les enregistrements sont modifiés ou créés sur le serveur. Comme une telle requête est gérée de façon synchrone, le poste client doit attendre que l'opération se soit correctement déroulée. Dans les environnements multi-utilisateurs et multi-process, aucun enregistrement verrouillé ne sera réécrit.

Dans l'exemple suivant, les deux tableaux tabNoms et tabSociétés écrivent des données dans la table [Personnes]. Les valeurs du tableau tabNoms sont placées dans le champ [Personnes]Nom et les valeurs du tableau tabSociétés sont placées dans le champ [Personnes]Société :

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

Vous souhaitez recopier la sélection d'enregistrements vers une table d'archive en sélectionnant les champs en fonction de la valeur d'options :

 TABLEAU TEXTE($_nom;0)
 TABLEAU TEXTE($_prenom;0)
 TABLEAU TEXTE($_cv;0)
 TABLEAU IMAGE($_photo;0)
 
 SELECTION VERS TABLEAU([Candidat]Nom;$_nom;*)
 SELECTION VERS TABLEAU([Candidat]Prenom;$_prenom;*)
 Si(avecCV) //on embarque le champ cv
    SELECTION VERS TABLEAU([Candidat]cv;$_cv;*)
 Fin de si
 Si(avecPhoto) //on embarque le champ photo
    SELECTION VERS TABLEAU([Candidat]photo;$_photo;*)
 Fin de si
 SELECTION VERS TABLEAU //exécution de la copie
 
 REDUIRE SELECTION([Candidat_Archive];0)
 TABLEAU VERS SELECTION($_nom;[Candidat_Archive]Nom;*)
 TABLEAU VERS SELECTION($_prenom;[Candidat_Archive]Prenom;*)
 Si(avecCV)
    TABLEAU VERS SELECTION($_cv;[Candidat_Archive]cv;*)
 Fin de si
 Si(avecPhoto)
    TABLEAU VERS SELECTION($_photo;[Candidat_Archive]photo;*)
 Fin de si
 TABLEAU VERS SELECTION



Voir aussi  

SELECTION VERS TABLEAU
Variables système

 
PROPRIÉTÉS 

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

Cette commande modifie l'ensemble système LockedSetCette commande change la sélection couranteCommande(s) éligible(s) à l'exécution dans un process préemptifComportement différent en mode distant

 
HISTORIQUE 

Modifié : 4D v11 SQL
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)