"Graph Builder" ajoute la fonction On Colse(), exception lors de l'exécution du chiffrementExpert de la communauté JMP, je viens de Chine.
La description suivante du problème provient de la traduction automatique. Ne vous inquiétez pas, la grammaire peut être un peu étrange.
Je rencontre quelques problèmes avec un bug potentiel dans le script JMP17. J'apprécierais que vous demandiez l'aide d'experts pour résoudre ce problème.
J'ai créé un script pour "Graph Builder". Afin de fermer automatiquement la table de données référencée lorsque le Graph Builder est fermé, j'ai ajouté le script suivant en utilisant On Close() :
gb << On Close( Close( gb << Get Data Table, nosave ) );
Mais comme j'ai beaucoup de tableaux de données et que j'ai besoin de générer des graphiques simultanément via la boucle for(), j'ai optimisé le script suivant :
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
Cependant, un problème inattendu est survenu. Bien qu'il n'y ait eu aucun problème pour exécuter le script normalement, lorsque je l'ai chiffré et exécuté, une exception a été signalée lors de la fermeture du graphique, ce qui m'a laissé assez perplexe.

Ce qui suit est un script de test complet. Votre aide dans l'analyse de ce problème serait grandement appréciée.
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 ) ) ) );
);
Automatisation et scriptsles fenêtresRe : "Graph Builder" ajoute la fonction On Colse(), exception lors de l'exécution du chiffrementJ'ai répliqué votre erreur On Close avec un script chiffré. Je pense qu'il s'agit d'un bug JMP et je vous suggère de soumettre le problème au support JMP.
support@jmp.com
Re : "Graph Builder" ajoute la fonction On Colse(), exception lors de l'exécution du chiffrementJe ne sais pas où cela se passe mal lorsque le script est crypté, mais cela semble fonctionner (j'ai modifié l'évaluation de la fermeture et de l'expression pour cela)
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);
);
));
);
Re : "Graph Builder" ajoute la fonction On Colse(), exception lors de l'exécution du chiffrementMerci Jarmo . C'est en effet une bonne méthode.
J'utilise "gb << On Close(Close(gb << Get Data Table, nosave))" C'est pour lier gb et dt, mais j'ai l'impression d'oublier qu'ils sont initialement liés.
Même si cela devrait être syntaxiquement correct, cela pourrait effectivement être une erreur interne dans un script JSL. Je vais suivre les conseils de @txnelson et référer ce problème au support JMP.
Re : "Graph Builder" ajoute la fonction On Colse(), exception lors de l'exécution du chiffrementMerci, Jim.
Cela pourrait vraiment être un bug JSL, car Jarmo ne semble pas non plus être en mesure d'expliquer la cause de cette erreur. J'accepterai votre suggestion de la soumettre au support JMP.
De plus, Jarmo partage une manière astucieuse de contourner ce problème que nous pouvons apprendre ensemble.