Descripción general
Al utilizar el lenguaje de programación JMP ® (JSL) para generar una ventana personalizada que solicite información al usuario, a menudo es conveniente agregar un botón que restaure la configuración de un lanzamiento anterior de la ventana dentro de la misma instancia de JMP. Hay una funcionalidad similar disponible al iniciar una plataforma de forma interactiva, por ejemplo, haciendo clic en el menú Analizar y seleccionando Distribución .
Actualmente, no existe un método JSL integrado para crear un botón de recuperación como el que se ve en los cuadros de diálogo de inicio de la plataforma de distribución y del menú Tablas. Sin embargo, puede crear su propia implementación.
El siguiente ejemplo genera una ventana personalizada en la que el usuario puede convertir columnas de la tabla de datos activa en roles adecuados. Cuando se hace clic en el botón Aceptar, las configuraciones del usuario se almacenan en variables definidas en un espacio de nombres con nombre. En los siguientes inicios de la ventana, el botón Recuperar borra las configuraciones actuales y restaura los valores del espacio de nombres.
Instrucciones
En una sesión de JMP, haga clic en el menú Archivo y seleccione Nuevo ► Script . Copie el script que aparece a continuación y péguelo en la ventana de script. Para ejecutar el script de muestra, haga clic en el menú Editar y seleccione Ejecutar 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 );
);
)
)
)
)
)
)
);
Documentación adicional
Puede encontrar más información sobre el lenguaje de script JMP enGuía de scripts de JMPPuede acceder a la guía desde JMP haciendo clic en el botónAyudaMenú y seleccionarAyuda de JMP. Desde la tabla de contenido en línea, seleccioneGuía de creación de scripts.
[Anteriormente Nota JMP 46984]
Miré el script y parece lo que necesito, sin embargo, no puedo averiguar cómo agregar el script de trama resultante para aprovecharlo. Mi script original se ve así, pero no tiene un botón de recuperación. ¿No estoy seguro de dónde agregar mi script? Además, ¿necesito convertir este script en modal?
Slán
Cabeza de llave inglesa
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 )
)
)
)
)
);
)
);