Das Datentabellenskript wird nicht dynamisch aktualisiert, um den neuen Wert im gespeicherten Skript zu verwenden, funktioniert jedoch über das Haupt-JSL-SkriptHallo zusammen,
Ich bin etwas verwirrt, warum das Tabellenskript die im Hauptskript festgelegten Variablen nicht dynamisch berücksichtigt. Daher erhalten die Zahlen Standardwerte und keine dynamischen Auswahlen basierend auf dem Durchlauf der For-Schleife. Jede Hilfe wäre willkommen. Unten ist das Tabellenskript, auf das ich mich beziehe, falls es nicht allgemein als Tabellenskript bezeichnet wird.

Bitte sehen Sie sich das Haupt-JSL-Skript auf der linken Seite an, in dem der hervorgehobene Code dynamisch arbeitet. Wenn das „VC-Skript“ in der Datentabelle gespeichert wird, öffnet sich das Skript auf der rechten Seite des Screenshots. Es scheint, als ob der erste Wert, auf den „Gewichte“ und „Zählungen“ stoßen, für alle Schleifen der For-Schleife festgelegt wird, in die es eingebettet ist. Gibt es eine Möglichkeit, dies dynamisch zu machen? Ich habe nur Beiträge über das Erstellen von Spaltenzeichenfolgen oder einer Formel gelesen, aber ich glaube nicht, dass das auf diesen Fall zutrifft.

Für jede Hilfe beim Ändern des JSL-Hauptcodes, sodass das gespeicherte Skript diese Werte nicht fest codiert, wäre ich dankbar. Vielen Dank im Voraus!
Automatisierung und SkriptingGrundlegende Datenanalyse und ModellierungDatenexploration und -visualisierungQualitäts- und ProzesstechnikErgebnisse teilen und kommunizierenWindowsBetreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausGibt es bestimmte Werte, die Sie auswerten möchten, aber nicht alle in Ihrem VC-Skript?
Betreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausOben links erstelle ich eine unterteilte Datentabelle „vc depo summary subset“, die pro For-Schleife durch eine Variable unterteilt, in diesem Fall depo, aber als Beispiel: depo = {„A“, „B“, „C“}. Im JSL-Skript links ergibt eine Unterteilung durch A Gewichte = [50, 50, 50, 50, 50] und Zählungen = [16, 20, 19, 20, 20] und eine Unterteilung durch B oder C ergibt unterschiedliche Gewichte und Zählungen. Das Skript links funktioniert einwandfrei. Aber wenn ich dasselbe Skript öffne, das in der Datentabelle gespeichert ist, setzt es die Gewichte/Zählungen standardmäßig auf die Werte von A, anstatt die Variable (wie sie links steht) zu belassen, die die richtigen Gewichte/Zählungen für B bzw. C enthält. Ich bin nicht sicher, wie ich es als Variable behalten kann, anstatt die fest codierten Werte rechts anzuzeigen.
Betreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausWenn ich das richtig verstehe, möchten Sie die Auswertung einiger Variablen verhindern. Eine Möglichkeit hierfür ist die Verwendung mehrerer Expr().
As you didn't share the script, I will try to use very simple example which hopefully demonstrates what you can do. Compare the script, table script and script which is inside frame box
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(3)))
);
script = EvalExpr(
vals = [55, 60, 70];
Eval(EvalExpr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = Expr(Expr(Expr(vals)))},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(Expr(Expr(Expr(vals)))), i++,
H Line(Expr(Expr(Expr(vals))));
);
);
);
))
);
Eval(EvalExpr(
dt << New Script("Test", Expr(Name Expr(script)));
));


Betreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausDanke Jarmo, das hat geklappt!
Gibt es einen Grund, warum wir die Variable mit drei Expr()-Funktionen statt nur einer dreifach umschließen müssen?
Betreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausJa, denn so funktioniert die Ausdrucksauswertung in JMP ( Skripthandbuch > Programmiermethoden > Erweiterte Ausdrücke, Makros und Listen „Anführungszeichen setzen und Anführungszeichen aufheben“).
In diesem Fall haben Sie beim Erstellen des Ausdrucks zwei EvalExpr, die zwei davon auswerten, UND Sie möchten einen zusätzlichen für das Tabellenskript übrig lassen, damit dieser als Expr beibehalten und nicht ausgewertet wird (also benötigen wir insgesamt drei). Es gibt andere Möglichkeiten, solche Dinge zu erstellen, aber es ist gut zu lernen, wie das Hinzufügen weiterer Expr() manchmal hilfreich sein kann.
Ich denke zum Beispiel, dass dies zu einem ähnlichen Skript führen sollte, ohne dass dreifache Ausdrücke () erforderlich sind.
script = Substitute(
Expr(
vals = [55, 60, 70];
Eval(
Eval Expr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = _valsexpr_},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(_valsexpr_), i++,
H Line(_valsexpr_)
);
)
)
)
);
),
Expr(_valsexpr_), Name Expr(Expr(vals))
);
Betreff: Datentabellenskript wird nicht dynamisch aktualisiert, um neuen Wert im gespeicherten Skript zu verwenden, funktioniert aber vom Haupt-JSL-Skript ausWarum nicht einfach
script = Expr(
vals = [55, 60, 70];
Eval(EvalExpr(
Current Report()[FrameBox(1)] << Add Graphics Script(
Local({myvals = Expr(vals)},
Pen Size(1);
Line Style(1);
For(i = 1, i <= N Items(Expr(vals)), i++,
H Line(Expr(vals));
);
);
);
))
);?