Folgendes funktioniert für myCol in dt. myCol ist numerisch und kontinuierlich
Names Default To Here (1);
dt = Current Data Table();
dt:myCol<< Set Property("Axis", {Min(0.02), Max(10.05), Inc( 0.01 ), Minor Ticks( 1 )});
Folgendes führt jedoch zu einem Absturz von JMP (Version 16.2.0). Wo mache ich einen Fehler?
ll = 0.02;
ul = 10.05;
dt:Cgd << Set Property( "Axis", {Min(ll), Max(ul), Inc( 0.01 ), Minor Ticks( 1 )});Die folgende Überprüfung zeigt das Problem (siehe Anhang, wenn Sie versuchen, die Eigenschaften von mCol zu überprüfen), aber ich habe keine Ideen, wie ich das Problem beheben kann.
AxLim1 = dt:Cgd << Get Property ("Axis"); show (AxLim1);Berichte
AxLim1 = {Min(ll), Max(ul), Inc(0.01), Minor Ticks(1)};Ich denke, das ist etwas Einfaches, das mir fehlt. Jede Richtung wäre sehr hilfreich.
JMP wertet die Variablen nicht aus. Versuchen Sie diese Problemumgehung:
ll = 0.02;
ul = 10.05;
Eval(
Substitute(
Expr( dt:myCol << Set Property( "Axis", {Min(lll), Max(uuu), Inc( 0.01 ), Minor Ticks( 1 )}) ),
Expr( lll ), ll,
Expr( uuu ), ul
)
);@Mark_Bailey
Danke. Die Problemumgehung scheint zu funktionieren. Könnte ich eine Erklärung zu Ihren Skriptschritten/-funktionen haben?
Ihr ursprüngliches Skript hat Variablen in den Argumenten der Set Property-Nachricht bereitgestellt. Wie gesagt, JMP wertet sie in diesem Fall nicht aus. Dadurch können Sie Ausdrücke als Parameter in einer Spalteneigenschaft festlegen. Da Sie einen konstanten Wert für den Parameter wünschen, müssen Sie die Variable anstelle der Variablen in einen Literalwert umwandeln. Ich arbeite von innen nach außen und erstelle eine Vorlage des gewünschten Ausdrucks mit Platzhaltern (z. B. lll Und uuu ) für die Literalwerte. Ich ersetze die Literalwerte durch die Auswertung der Variablen (d. h. ll Und ul ) für die Platzhalter. Schließlich bewerte ich den resultierenden Ausdruck. Sie können diese Arbeit sehen, indem Sie die Funktion Substitute() auswählen und auswerten.