Joignez deux tables avec des noms de variablesSalut,
J'aime joindre deux tables avec des noms de variables. Voici le scénario.
Eval(
Parse(
"s3 << Join(
With( rds),
Merge Same Name Columns,
By Matching Columns(
" || name3 || ",
" || name4 ||
"
),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 )
);"
)
);
J'obtiens une erreur "Nom non résolu : Red LED Hue x 64{1} lors de l'accès ou de l'évaluation de "Red LED Hue 64/*###*/. Aucun problème avec le nom 3 "Serail#" mais problème avec "Red LED Hue x 64[1]".
Voici le script qui fonctionne bien mais j'aime remplacer les noms de variables par name3 et name4.
Data Table( "S3" ) << Join(
With( Data Table( "RDS" ) ),
Merge Same Name Columns,
By Matching Columns( :Serial# = :Serial#, :Name( "Red LED Hue x 64[1]" ) = :Name( "Red LED Hue x 64[1]" ) ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 )
)
J'apprécie ton aide.Merci
Re : Joindre deux tables avec des noms de variablesMerci Cameron. Je l'ai essayé et ça marche bien. Merci encore.
Re : Joindre deux tables avec des noms de variablesOups, il manque des guillemets à l'intérieur du nom.J'ai oublié ça.Vous pouvez le faire de plusieurs manières, mais en voici une où nous utilisons la syntaxe d'échappement pour insérer des guillemets doubles à l'intérieur d'une chaîne.
name1 = ":Name(\!"" || xvar || "\!")";
name2 = ":Name(\!"" || yvar || "\!")";
name3 = name1 || " = " || name2;
Vous devez absolument utiliser l'approche :Name("col name") pour que cela reste robuste, car vous en aurez besoin pour gérer les situations avec des caractères spéciaux dans les noms de colonnes.
Re : Joindre deux tables avec des noms de variablesMerci Cameron. J'ai modifié name3 et name4 comme ce que vous avez suggéré et j'ai eu une erreur :
Le nom argument doit être une chaîne entre guillemets
Ligne 5 Colonne 9 : :Nom(►Numéro de série) = :Nom(Numéro de série),
Si je garde name3 comme avant, pas d'erreur pour Serial# mais pour name4. Je ne sais pas a priori ce que les utilisateurs choisissent pour name3 et name4.
Merci pour votre soutien continu.
Re : Joindre deux tables avec des noms de variablesLe problème vient presque certainement des crochets dans Name4. Si les noms de colonnes comportent des caractères spéciaux, vous ne pouvez pas utiliser les deux points (:) avec le nom de colonne.Vous devez obtenir la chaîne du nom de colonne enveloppée dans :Name().
Essaye ça:
name1 = ":Name(" || xvar || ")";
name2 = ":Name(" || yvar || ")";
name3 = name1 || " = " || name2;Re : Joindre deux tables avec des noms de variablesMerci Cameron. Le nom3 et le nom4 sont répertoriés ci-dessous lorsque show(name) est invoqué.
name3 = ":Serial# = :Serial#";
name4 = ":Red LED Hue x 64[1] = :Red LED Hue x 64[1]";
The name 3 and name4 are created by using the following script:xvar = .;
yvar = .;
win = New Window( "Choose Two Variables for Matching",
<<MODAL></MODAL>
De même pour name4.
J'apprécie ton aide. Merci
Re : Joindre deux tables avec des noms de variablescomment définissez-vous name3 et name4 ?Pouvez-vous publier cette partie de votre script et montrer comment ces variables sont évaluées dans le journal ? (par exemple, exécutez "Show(name3, name4)")