script "ajouter une ligne" avec une entrée de liste dynamiqueSalut tout le monde,
J'ai un TableBox comme tableau de rapport dans mon journal. Je peux remplir ce tableau avec "ajouter une ligne" qui, en entrée, nécessite une liste. Cela fonctionne lorsque j'écris directement les valeurs de la liste dans la fonction. Voir ci-dessous. Cependant, lorsque je prépare la liste à l'avance et que je l'analyse dans la fonction, cela ne fonctionne plus. Voir le deuxième exemple ci-dessous. Pourquoi? Le but est de construire cette "ligne d'ajout" dans une boucle avec à chaque fois des informations différentes.
Bauké
// possible and working
ob[TableBox(1)] << add row ({"1","2","3",4});
// not possible why?
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (rowContents2);
ScriptRe : script "ajouter une ligne" avec une entrée de liste dynamiqueLa raison pour laquelle cela fonctionne, c'est ce que le code fait simplement, est de construire le JSL exact nécessaire dans une chaîne de caractères, puis d'utiliser Eval(Parse(…….)) pour dire à JMP de soumettre la valeur des chaînes de caractères à JMP.
Si vous prenez votre exemple spécifique, la syntaxe codée en dur pour accomplir ce que vous voulez est
ob[TableBox(1)] << add row ({"1", "2", "3", 4});
Ainsi, si l'on peut intégrer la ligne de code ci-dessus dans une chaîne de caractères, la chaîne de caractères peut ensuite être soumise à JMP à l'aide de la combinaison de fonctions Eval(Parse()).Voici une simple extension de votre script pour, espérons-le, clarifier cela
rowContents2 = {"1","2","3",4};
// Create a character string variable with the required syntax
myString = "ob[TableBox(1)] << add row (" || char(rowContents2) || ");";
// Write the string to the log to show what it looks like
show( myString );
// Run the character string variable
Eval( Parse( myString ) );
Re : script "ajouter une ligne" avec une entrée de liste dynamiqueMerci beaucoup!
Le premier n'a pas fonctionné. La deuxième solution a fonctionné lors de l'ajout de 2 crochets manquants à la fin. Je ne comprends pas encore pourquoi cela fonctionne, mais je le découvrirai peut-être plus tard.
Bauké
Re : script "ajouter une ligne" avec une entrée de liste dynamiqueessayez les options dans le script ci-dessous.(Remarque : 2 ")" à la fin ont été ajoutés pour rendre la syntaxe correcte, après @Bauke observation des caractères manquants)
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (eval(rowContents2));
// or if necessary this should force it to work
eval(parse("ob[TableBox(1)] << add row (" || char(rowContents2) || ");"));