So verwenden Sie den Wert meiner For Each-Schleife zum Generieren neuer TabellenskripteIch durchlaufe vorhandene Datentabellenskripte und erstelle ein Duplikat jedes Skripts mit einigen Änderungen.
Ich möchte diese Tabellenskriptnamen in die generierten Tabellenskripte einfügen.
Die Ausgabe, die ich erhalte, fügt einfach das Wort "script" in meine generierten Tabellenskripte ein, anstatt des tatsächlichen Zeichenfolgenwerts in scriptList
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
scriptList = dt << Get Table Script Names;
For Each({script}, scriptList,
If ((!Contains(scriptList, "Run "||script)),
dt << New Script("Run "||script,dt=Current DataTable();w=eval(dt << get table property((script)));w << set window title((script)));
);
);
Automatisierung und SkriptingBetreff: Wie verwende ich den Wert meiner For Each-Schleife, um neue Tabellenskripte zu generieren?Etwas Behandlung von Ausdrücken kombiniert mit Fügen Sie mit Eval Insert, Eval Expr, Parse und Substitute einen Ausdruck in einen anderen ein sollte arbeiten. Hier ist ein Beispiel:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For Each({script_name}, dt << Get Table Script Names,
If((!Contains(script_name, "Run " || script_name)),
script_expr = dt << Get Script(script_name);
Eval(Substitute(
Expr(
dt << New Script("Run " || _script_name_,
Local({w},
w = _new_script_;
w << set window title(_script_name_)
)
);
),
Expr(_script_name_), script_name,
Expr(_new_script_), Name Expr(script_expr)
))
)
);Betreff: Wie verwende ich den Wert meiner For Each-Schleife, um neue Tabellenskripte zu generieren?danke, das funktioniert in der Tat gut
Betreff: Wie verwende ich den Wert meiner For Each-Schleife, um neue Tabellenskripte zu generieren?Hallo, ich denke, ich habe dies in meiner ursprünglichen Frage nicht angegeben, aber Ihre Lösung hat das Verhalten meines Skripts geändert, da es den Zielskriptcode in das neue Skript kopiert. Ich wollte den Verweis nur auf das Originalskript beibehalten. Hier ist das endgültige Skript, das ich verwende, vielleicht finden andere Leute es nützlich.
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
For Each( {script_name}, scriptList,
If( (!Contains( script_name, "Run" ) & !Contains( scriptList, "Run " || script_name )),
Eval(
Substitute(
Expr(
dt << New Script(
"Run " || script_name,
dt = Current Data Table();
w = Eval( dt << get table property( script_placeholder ) );
w << set window title( script_placeholder );
)
),
Expr(script_placeholder), Char(script_name)
)
)
)
);Betreff: Wie verwende ich den Wert meiner For Each-Schleife, um neue Tabellenskripte zu generieren?JMP 14 funktioniert nicht.
Betreff: Wie verwende ich den Wert meiner For Each-Schleife, um neue Tabellenskripte zu generieren?Die For Each()-Funktion ist eine neue Funktion in JMP 16.