Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istAchtung: Frage für Anfänger
Ich habe eine Datentabelle, zu der ich eine temporäre Spalte (:Parameter_new) hinzufüge, um sie mit Einträgen zu füllen, wenn eine bestimmte Bedingung erfüllt ist. Die Einträge möchte ich dann in eine andere Spalte (:Parameter_old) bringen. Mein Eindruck ist, dass sich der Code anders verhält, wenn er Teil des endgültigen Skripts ist, als wenn ich einzelne Zeilen in ein anderes Skript kopiere. Beim zeilenweisen Anwenden des Skriptcodes funktioniert alles wie erwartet. Bei der Implementierung in das endgültige Skript erhalte ich nur leere Werte. Wo mache ich einen Fehler?
//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;Qualitäts- und VerfahrenstechnikBetreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istHallo. Es scheint eine Änderung in der Community-Plattform gegeben zu haben. Wir haben den Support kontaktiert. In der Zwischenzeit haben wir eine vorübergehende Lösung implementiert, die es Ihnen ermöglichen sollte, die Schaltfläche wie erwartet zu verwenden. Danke.
Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istAlle meine -Codeblöcke werden beim Posten hier in den Community-Foren als Fehler gekennzeichnet.Insbesondere wird „class=" language-jsl"` im -Block entfernt, wie unten beschrieben
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 ) ));

Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istIch freue mich, dass Sie das Problem lösen konnten. Was die Farbcodierung angeht, sieht es so aus, als würden Sie das verwenden, das sich links neben dem in der Editor-Symbolleiste befindet.
Sie haben vielleicht versucht, beide im selben Snippet zu verwenden, aber nur einer funktioniert. Ich habe die Formatierung in Ihren beiden Beiträgen korrigiert.
Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istFühle ich mich dumm, wenn ich jetzt etwas über Ifs höre?
Und warum ist mein JSL-Code-Snippet ganz grau? Wie erhalte ich die richtige Schriftart und die richtigen Farben?
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));Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istDanke. Sieht interessant aus. Bitte geben Sie mir etwas Zeit, bevor ich die Details zu diesem Ansatz geklärt habe, meinen ursprünglichen Code in vollständiger Form veröffentlichen und Ihren Beitrag als Lösung akzeptieren kann.
(Außerdem: Warum ist mein JSL-Code in meinem Beitrag ohne Farbe formatiert? Ich verwende das -Symbol zum Einfügen von Snippets.)
Edit: Wundervoller Beitrag über das Abonnieren. Das war mir zwar nicht bewusst, sorgte aber für eine interessante Lektüre. Ich habe seitdem eine Antwort von mir selbst als Lösung akzeptiert, da sie mir intuitiv einfacher erschien.
Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istDanke, ich freue mich über die Antwort! Habe beides probiert, hat nicht funktioniert. Seien Sie offen für Vorschläge beim Angeln im Scripting Guide.
Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istDie endgültige Aussage hat eine Matrix auf der linken Seite (links) und eine Spalte auf der rechten Seite (rechts).
Sie haben zwei verschiedene Fälle: innerhalb der ForEachRow und außerhalb. Wenn darin eine implizite Zeile vorhanden ist und die Spalte in einen Skalar aufgelöst wird. Wenn außerhalb, gibt es keine implizite Zeile. Sie hatten wahrscheinlich genau eine Zeile ausgewählt, als es in ForEachRow funktionierte.
Eine Spaltenmatrix (LHS) unterstützt nur einen Skalar auf der RHS. Mit einer Matrix auf der rechten Seite wird es nicht richtig funktionieren.
Sie können verwenden Abonnieren der Datentabelle stattdessen. Dadurch wird die Tabelle als 2D-Matrix behandelt (3 Zeilen, 1 Spalte in diesem kleinen Beispiel).
dt = Open( "$sample_data/big class.jmp" );
dt[[2, 3, 4], {name}] = dt[[5, 6, 7], {name}];Betreff: Ein Teil des JSL-Codes funktioniert im endgültigen Skript nicht, funktioniert aber, wenn er isoliert istJMP wertet die Formel in Parameter_new wahrscheinlich nicht aus, bevor es zur nächsten Zeile übergeht.Versuchen Sie, Folgendes nach Ihrer Funktion „Für jede Zeile“ hinzuzufügen:
dt << Run Formulas;
Sie könnten auch eine Wartezeit gebrauchen:
Wait(0);