„Graph Builder“ fügt bei der Funktion „On Colse()“ eine Ausnahme hinzu, wenn die Verschlüsselung ausgeführt wirdJMP-Community-Experte, ich komme aus China.
Die folgende Problembeschreibung stammt aus einer maschinellen Übersetzung. Bitte haben Sie keine Bedenken, wenn die Grammatik etwas seltsam sein kann.
Ich habe Probleme mit einem möglichen Fehler im JMP17-Skript. Ich wäre Ihnen dankbar, wenn Sie sich bei diesem Problem an die Experten wenden könnten.
Ich habe ein Skript für den „Graph Builder“ erstellt. Um die referenzierte Datentabelle automatisch zu schließen, wenn der Graph Builder geschlossen wird, habe ich das folgende Skript mit On Close() hinzugefügt:
gb << On Close( Close( gb << Get Data Table, nosave ) );
Da ich aber viele Datentabellen habe und über die for()-Schleife gleichzeitig Diagramme erstellen muss, habe ich das folgende Skript optimiert:
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
Es trat jedoch ein unerwartetes Problem auf. Während es beim normalen Ausführen des Skripts keine Probleme gab, wurde beim Verschlüsseln und Ausführen des Diagramms beim Schließen eine Ausnahme gemeldet, die mich ziemlich verwirrt hat.

Nachfolgend finden Sie ein vollständiges Testskript. Wir wären Ihnen für Ihre Hilfe bei der Analyse dieses Problems sehr dankbar.
Names Default To Here( 1 );
fileList = {"big class.jmp", "Big Class Families.jmp"};
For Each( {file, i}, fileList,
dt = Open( Eval Insert( "$sample_data/^file^" ), "invisible" );
gb = dt << Graph Builder(
Size( 917, 645 ),
Variables( X( :sex ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 5 ) ),
Box Plot( X, Y, Legend( 6 ) ),
Caption Box( X, Y, Legend( 9 ), Summary Statistic( "Mean" ), Location( "Graph per factor" ), X Position( "Left" ) )
),
SendToReport(
Dispatch( {}, "Points", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Box Plot", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Caption Box", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Caption Box", Outline Box( 2 ), {Close( 1 )} )
)
);
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
);
Automatisierung und SkriptingWindowsBetreff: „Graph Builder“ fügt bei der Funktion „On Colse()“ eine Ausnahme hinzu, wenn die Verschlüsselung ausgeführt wirdIch habe Ihren „On Close“-Fehler mit einem verschlüsselten Skript reproduziert. Ich glaube, es handelt sich um einen JMP-Fehler und schlage vor, dass Sie das Problem an den JMP-Support melden.
support@jmp.com
Betreff: „Graph Builder“ fügt bei der Funktion „On Colse()“ eine Ausnahme hinzu, wenn die Verschlüsselung ausgeführt wirdIch bin nicht sicher, was schief geht, wenn das Skript verschlüsselt ist, aber es scheint zu funktionieren (ich habe die Auswertung beim Schließen und beim Ausdruck dafür geändert).
Names Default To Here(1);
fileList = {"big class.jmp", "Big Class Families.jmp"};
For Each( {file, i}, fileList,
dt = Open(Eval Insert("$sample_data/^file^"), "invisible");
gb = dt << Graph Builder(
Size(917, 645),
Variables(X(:sex), Y(:height)),
Elements(
Points(X, Y, Legend(5)),
Box Plot(X, Y, Legend(6)),
Caption Box(
X,
Y,
Legend(9),
Summary Statistic("Mean"),
Location("Graph per factor"),
X Position("Left")
)
),
SendToReport(
Dispatch({}, "Points", OutlineBox, {Close(1)}),
Dispatch({}, "Box Plot", OutlineBox, {Close(1)}),
Dispatch({}, "Caption Box", OutlineBox, {Close(1)}),
Dispatch({}, "Caption Box", Outline Box(2), {Close(1)})
)
);
Eval(EvalExpr(
gb << On Close(
Close(Expr(dt), nosave);
);
));
);
Betreff: „Graph Builder“ fügt bei der Funktion „On Colse()“ eine Ausnahme hinzu, wenn die Verschlüsselung ausgeführt wirdDanke, Jarmo . Das ist wirklich eine gute Methode.
Ich verwende „gb << On Close(Close(gb << Get Data Table, nosave))“, um gb und dt zu binden, aber ich scheine zu vergessen, dass sie ursprünglich gebunden sind.
Obwohl es syntaktisch korrekt sein sollte, könnte es sich tatsächlich um einen internen Fehler in einem JSL-Skript handeln. Ich werde den Rat von @txnelson befolgen und dieses Problem an den JMP-Support weiterleiten.
Betreff: „Graph Builder“ fügt bei der Funktion „On Colse()“ eine Ausnahme hinzu, wenn die Verschlüsselung ausgeführt wirdDanke, Jim.
Dies könnte tatsächlich ein JSL-Fehler sein, da Jarmo die Ursache dieses Fehlers auch nicht erklären kann. Ich werde Ihren Vorschlag annehmen und ihn an den JMP-Support senden.
Darüber hinaus verrät Jarmo uns einen cleveren Weg, dieses Problem zu umgehen, den wir gemeinsam erlernen können.