Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istAchtung: Anfängerfrage
Ich habe eine Datentabelle, 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) bekommen. 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 bekomme ich nur leere Werte. Wo gehe ich falsch?
//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;SkripterstellungBetreff: Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istHi. Es scheint eine Änderung in der Community-Plattform gegeben zu haben. Wir haben den Support kontaktiert. In der Zwischenzeit haben wir einen temporären Fix implementiert, der es Ihnen ermöglichen sollte, die Schaltfläche wie erwartet zu verwenden. Vielen Dank.
Betreff: Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istAlle meine -Codeblöcke werden als Fehler gekennzeichnet, wenn ich hier in den Community-Foren poste.Insbesondere wird das `class=" language-jsl"` innerhalb des -Blocks entfernt, wie unten gezeigt
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 nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istIch freue mich, dass Sie das Problem lösen konnten. Was die Farbcodierung betrifft, so sieht es so aus, als würden Sie das verwenden, das sich links neben in der Editor-Symbolleiste befindet.
Möglicherweise haben Sie versucht, beide im selben Snippet zu verwenden, aber nur eines funktioniert. Ich habe die Formatierung in beiden Posts korrigiert.
Betreff: Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istKomme ich mir jetzt blöd vor, wenn ich etwas über Ifs lerne ...
Und warum ist mein JSL-Code-Snippet ganz grau? Wie bekomme ich die richtige Schriftart und 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 nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istVielen Dank. Sieht interessant aus. Bitte geben Sie mir etwas Zeit, bevor ich die Details rund um diesen Ansatz aussortiert habe, meinen ersten Code in vollständiger Form posten kann 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.)
Bearbeiten: Wunderbarer Beitrag über das Abonnieren. War mir dessen nicht bewusst, sorgte aber für eine interessante Lektüre. Ich habe inzwischen eine Antwort von mir als Lösung akzeptiert, da es mir intuitiv einfacher erschien.
Betreff: Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istDanke ih, ich freue mich über die Antwort! Beides probiert, hat nicht funktioniert. Offen für Vorschläge beim Angeln im Scripting Guide.
Betreff: Ein Teil des JSL-Codes funktioniert nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istDie letzte Anweisung 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 sie darin enthalten ist, gibt es eine implizite Zeile und die Spalte wird in einen Skalar aufgelöst. Wenn außerhalb, gibt es keine implizite Zeile. Sie hatten wahrscheinlich genau eine Zeile ausgewählt, als es innerhalb von ForEachRow funktionierte.
Eine Spaltenmatrix (LHS) unterstützt nur einen Skalar auf der RHS. Es funktioniert nicht richtig mit einer Matrix auf der RHS.
Sie können verwenden Subskription von Datentabellen stattdessen. Dadurch wird die Tabelle als 2D-Matrix behandelt (3 Zeilen, 1 Spalte in diesem winzigen 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 nicht im endgültigen Skript, funktioniert aber, wenn er isoliert istWahrscheinlich wertet JMP die Formel in Parameter_new nicht aus, bevor es zur nächsten Zeile wechselt.Versuchen Sie, dies nach Ihrer For Each Row-Funktion hinzuzufügen:
dt << Run Formulas;
Sie könnten auch eine Wartezeit verwenden:
Wait(0);