"Graph Builder" aggiunge la funzione On Colse(), eccezione quando viene eseguita la crittografiaEsperto della community JMP, vengo dalla Cina.
La seguente descrizione del problema proviene dalla traduzione automatica. Per favore, non preoccuparti che la grammatica possa essere un po' strana.
Sto riscontrando alcuni problemi con un potenziale bug nello script JMP17. Apprezzerei se potessi chiedere assistenza agli esperti per affrontare la questione.
Ho creato uno script per "Graph Builder". Per chiudere automaticamente la tabella dati di riferimento quando il Costruttore di grafici è chiuso, ho aggiunto il seguente script utilizzando On Close():
gb << On Close( Close( gb << Get Data Table, nosave ) );
Ma poiché ho molte tabelle di dati e devo generare grafici simultaneamente tramite il ciclo for(), ho ottimizzato il seguente script:
Eval( Eval Expr( Expr( gb ) << On Close( Close( Expr( gb ) << Get Data Table, nosave ) ) ) );
Tuttavia, si è verificato un problema inaspettato. Sebbene non ci siano stati problemi nell'esecuzione normale dello script, quando l'ho crittografato ed eseguito, è stata segnalata un'eccezione alla chiusura del grafico, cosa che mi ha lasciato piuttosto perplesso.

Quello che segue è uno script di test completo. Il tuo aiuto nell'analizzare questo problema sarebbe molto apprezzato.
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 ) ) ) );
);
Automazione e scriptingfinestreRi: "Graph Builder" aggiunge la funzione On Colse(), eccezione quando viene eseguita la crittografiaHo replicato il tuo errore di chiusura con uno script crittografato. Credo che si tratti di un bug di JMP e suggerisco di segnalare il problema al supporto JMP.
support@jmp.com
Ri: "Graph Builder" aggiunge la funzione On Colse(), eccezione quando viene eseguita la crittografiaNon sono sicuro di dove vada storto quando lo script è crittografato, ma sembra funzionare (ho modificato la valutazione della chiusura e dell'espressione per questo)
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);
);
));
);
Ri: "Graph Builder" aggiunge la funzione On Colse(), eccezione quando viene eseguita la crittografiaGrazie, Jarmo . Questo è davvero un buon metodo.
Utilizzo "gb << On Close(Close(gb << Get Data Table, nosave))" Serve per associare gb e dt, ma mi sembra di dimenticare che sono originariamente associati.
Anche se dovrebbe essere sintatticamente corretto, potrebbe effettivamente trattarsi di un errore interno in uno script JSL. Seguirò il consiglio di @txnelson e riferirò il problema al supporto JMP.
Ri: "Graph Builder" aggiunge la funzione On Colse(), eccezione quando viene eseguita la crittografiaGrazie, Jim.
Potrebbe davvero trattarsi di un bug JSL, poiché nemmeno Jarmo sembra essere in grado di spiegare la causa di questo errore. Accetterò il tuo suggerimento di inviarlo al supporto JMP.
Inoltre, Jarmo condivide un modo intelligente per aggirare questo problema che possiamo imparare insieme.