Panoramica
Quando si utilizza JMP ® Scripting Language (JSL) per generare una finestra personalizzata per richiedere informazioni all'utente, spesso è preferibile aggiungere un pulsante che ripristini le impostazioni da un precedente avvio della finestra all'interno della stessa istanza JMP. Una funzionalità simile è disponibile quando si avvia una piattaforma in modo interattivo, ad esempio facendo clic sul menu Analyze e selezionando Distribution .
Attualmente, non esiste un metodo JSL incorporato per creare un pulsante Recall come quello che vedi nelle finestre di dialogo del menu di avvio della piattaforma Distribution e Tables. Tuttavia, puoi creare la tua implementazione.
L'esempio seguente genera una finestra personalizzata in cui l'utente può convertire le colonne dalla tabella dati attiva in ruoli appropriati. Quando si fa clic sul pulsante OK, le impostazioni dell'utente vengono memorizzate in variabili definite in uno spazio dei nomi denominato. Nei successivi avvii della finestra, il pulsante Recall cancella tutte le impostazioni correnti e ripristina i valori dallo spazio dei nomi.
Istruzioni
In una sessione JMP, fai clic sul menu File e seleziona Nuovo ► Script . Copia lo script sottostante e incollalo nella finestra dello script. Per eseguire lo script di esempio, fai clic sul menu Modifica e seleziona Esegui script .
Names Default to Here(1);
/* Assign dt to reference a table. Open a sample table for demonstration purposes */
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
/* Use a named namespace to hold the recall values */
if(!Namespace Exists("Custom Dialog"), // define namespace if it does not exist
dialogRecallNS = New Namespace("Custom Dialog",
{
ycolRecall = {},
orderRecall = {},
byRecall = {}
});
, // else get a reference to the existing namespace
dialogRecallNS = NameSpace("Custom Dialog");
);
nc = N Col( dt );
lbWidth = 130;
/* Expression to clear all current settings */
clearRoles = Expr(
colListY << RemoveAll;
colListX << RemoveAll;
colListB << RemoveAll;
);
/* Expression to store the current settings in global variables */
recallRoles = Expr(
dialogRecallNS:ycolRecall = colListY << GetItems;
dialogRecallNS:orderRecall = colListX << GetItems;
dialogRecallNS:byRecall = colListB << GetItems;
);
/* Custom Launch Window */
customDlg = New Window( "Example of a Custom Dialog",
Border Box( Left( 3 ), top( 2 ),
V List Box(
Text Box( "Example dialog to demonstrate a Recall button" ),
H List Box(
V List Box(
Panel Box( "Select Columns",
colListData = Col List Box( All, width( lbWidth ), nLines( Min( nc, 10 ) ) )
)
),
Panel Box( "Cast Selected Columns into Roles",
Lineup Box( N Col( 2 ), Spacing( 3 ),
Button Box( "Y, Response", colListY << Append( colListData << GetSelected ) ),
colListY = Col List Box( width( lbWidth ), nLines( 5 ), numeric ),
Button Box( "X, Factor", colListX << Append( colListData << GetSelected ) ),
colListX = Col List Box( width( lbWidth ), nLines( 1 ), numeric ),
Button Box( "By", colListB << Append( colListData << GetSelected ) ),
colListB = Col List Box( width( lbWidth ), nLines( 1 ) )
)
),
Panel Box( "Action",
Lineup Box( N Col( 1 ),
Button Box( "OK",
recallRoles;
customDlg << CloseWindow;
),
Button Box( "Cancel", customDlg << CloseWindow ),
Button Box( "Reset", clearRoles ),
Text Box( " " ),
Button Box( "Remove",
colListY << RemoveSelected;
colListX << RemoveSelected;
colListB << RemoveSelected;
),
Button Box( "Recall",
clearRoles;
/* Restore any previous settings from the namespace variables */
Try(
colListY << Append( dialogRecallNS:ycolRecall );
colListX << Append( dialogRecallNS:orderRecall );
colListB << Append( dialogRecallNS:byRecall );
);
)
)
)
)
)
)
);
Documentazione aggiuntiva
Ulteriori informazioni sul linguaggio di scripting JMP sono disponibili inGuida allo scripting JMPÈ possibile accedere alla guida dall'interno di JMP cliccando suAiutomenu e selezionaGuida JMPDall'indice online, scegliGuida alla scrittura di script.
[In precedenza JMP Nota 46984]
Ho guardato lo script e sembra quello che mi serve, tuttavia, non riesco a capire come aggiungere lo script della trama risultante per trarne vantaggio. Il mio script originale sembra così ma non ha un pulsante di richiamo. Non so dove aggiungere il mio script? Inoltre, devo rendere questo script modale?
Slánn
Testa della chiave inglese
dt = Current Data Table();
cd = Column Dialog(
exy = ColList( "Y", Min Col( 1 ) ),
exx = ColList( "X", Min Col( 1 ) )
);
Eval( cd[1] );
Eval( cd[2] );
yyy = Expr( y() );
xxx = Expr( x() );
xval = exx[1];
For( i = 1, i <= N Items( exy ), i++,
Insert Into( yyy, exy[i] )
);
For( i = 1, i <= N Items( exx ), i++,
Insert Into( xxx, exx[i] )
);
nw = New Window( "Annotated Multiple Plots",
For( i = 1, i <= N Items( exy ), i++,
Notes = exy[i] << Get Property( "Notes" );
Try(
Bivariate(
Y( exy[i] ),
X( exx[1] ),
SendToReport(
Dispatch(
{},
"",
AxisBox( 2 ),
Add Text Annotation(
Text( "Category: " || Notes ),
Fixed Size( 0 ),
Text Box( {-80, 25, 0, 50} ),
Filled( 0 )
)
)
)
)
);
)
);