Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeAttention : question de niveau débutant
J'ai une table de données à laquelle j'ajoute une colonne temporaire (:Parameter_new) à remplir d'entrées si une certaine condition est remplie. Les entrées que je souhaite ensuite placer dans une autre colonne (:Parameter_old). Mon impression est que le code se comporte différemment lorsqu'il fait partie du script final, par rapport à la copie de lignes individuelles dans un script différent. Lors de l'application du code du script ligne par ligne, tout fonctionne comme prévu. Une fois implémenté dans le script final, je n'obtiens que des valeurs vides. Où est-ce que je me trompe ?
//Code works OK
dt << New Column ("Parameter_new", character);
dt << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If(:Parameter_old == "Parameter x",
:Parameter_new = :Parameter_old || " " || "by" || " " ||:Method_description));
dt << select where(:Parameter_old == "Parameter x");
//Code does not work and deletes all entries in column "Parameter_old", i.e. cells come out blank
//Code does however work if applied individually, line by line
:Name("Parameter_old")[dt << get selected rows] = :Parameter_new;Ingénierie Qualité et ProcédésRe : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeSalut. Il semble y avoir eu un changement dans la plateforme communautaire. Nous avons contacté le support. En attendant, nous avons implémenté un correctif temporaire qui devrait vous permettre d'utiliser le bouton comme prévu. Merci.
Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeTous mes blocs de code sont signalés comme erreurs lors de leur publication ici sur les forums de la communauté.Plus précisément, le `class=" language-jsl"` à l'intérieur du bloc est supprimé, comme ci-dessous
Names Default To Here( 1 );
x = [10, 50, 90];
y = [10, 90, 10];
New Window( "Line Seg Example", g = Graph Box( Line Seg( x, y ) ) );
frame = g[FrameBox( 1 )];
seg = (frame << Find Seg( Line Seg( 1 ) ));

Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeJe suis heureux que vous ayez pu résoudre le problème. En ce qui concerne le codage couleur, il semble que vous utilisiez le qui se trouve à gauche du dans la barre d'outils de l'éditeur.
Vous avez peut-être essayé de les utiliser tous les deux sur le même extrait, mais un seul fonctionne. J'ai corrigé le formatage de vos deux messages.
Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeEst-ce que je me sens stupide d'apprendre les Ifs maintenant...
De plus, pourquoi mon extrait de code JSL est-il tout gris ? Comment puis-je obtenir la police et les couleurs correctes ?
dt2 << New Column ("Parameter_new", character);
dt2 << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If( :Parameter_old == "Parameter x", :Parameter_new = :Parameter_old || " " || "by" || " " || :Method_description,
:Parameter_old != "Parameter x", :Parameter = :Parameter_old));Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeMerci. Semble intéressant. Veuillez me donner un peu de temps avant d'avoir réglé les détails de cette approche, de pouvoir publier mon code initial sous sa forme complète et d'accepter votre message comme solution.
(De plus, pourquoi mon code JSL est-il formaté sans couleur dans ma publication ? J'utilise l'icône pour insérer des extraits.)
Edit : Merveilleux article sur l'abonnement. Je n'en étais pas au courant, mais c'était une lecture intéressante. Depuis, j'ai accepté une réponse de ma part comme solution, car elle me paraissait intuitivement plus facile.
Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeMerci ih, j'apprécie la réponse! J'ai essayé les deux, ça n'a pas fonctionné. Ouvert aux suggestions pendant la pêche dans le guide de script.
Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeL'instruction finale comporte une matrice à gauche (LHS) et une colonne à droite (RHS).
Vous avez deux cas différents : à l’intérieur de ForEachRow et à l’extérieur. Si elle est à l'intérieur, il y a une ligne implicite et la colonne se résout en un scalaire. Si c'est à l'extérieur, il n'y a pas de ligne implicite. Vous aviez probablement sélectionné exactement une ligne lorsqu'elle fonctionnait à l'intérieur de ForEachRow.
une matrice de colonnes (LHS) ne prend en charge qu'un scalaire sur le RHS. Cela ne fonctionnera pas correctement avec une matrice sur le RHS.
Vous pouvez utiliser Inscription aux tables de données plutôt. Cela traite le tableau comme une matrice 2D (3 lignes, 1 colonne dans ce petit exemple.)
dt = Open( "$sample_data/big class.jmp" );
dt[[2, 3, 4], {name}] = dt[[5, 6, 7], {name}];Re : Une partie du code JSL ne fonctionne pas dans le script final, mais fonctionne si elle est isoléeJMP n'évalue probablement pas la formule dans Parameter_new avant de passer à la ligne suivante.Essayez d'ajouter ceci après votre fonction For Each Row :
dt << Run Formulas;
Vous pouvez également utiliser une attente :
Wait(0);