Aperçu
Lorsque vous utilisez le langage de script JMP ® (JSL) pour générer une fenêtre personnalisée afin d'inviter l'utilisateur à saisir des informations, il est souvent souhaitable d'ajouter un bouton qui restaure les paramètres d'un lancement précédent de la fenêtre dans la même instance JMP. Une fonctionnalité similaire est disponible lors du lancement interactif d'une plateforme, par exemple en cliquant sur le menu Analyser et en sélectionnant Distribution .
Actuellement, il n'existe aucune méthode JSL intégrée permettant de créer un bouton de rappel comme vous pouvez le voir dans les boîtes de dialogue de lancement de la plateforme de distribution et du menu Tables. Cependant, vous pouvez créer votre propre implémentation.
L'exemple suivant génère une fenêtre personnalisée dans laquelle l'utilisateur peut convertir les colonnes de la table de données active en rôles appropriés. Lorsque le bouton OK est cliqué, les paramètres de l'utilisateur sont stockés dans des variables définies dans un espace de noms nommé. Lors des lancements suivants de la fenêtre, le bouton Rappeler efface tous les paramètres actuels et restaure les valeurs de l'espace de noms.
Instructions
Dans une session JMP, cliquez sur le menu Fichier et sélectionnez Nouveau ► Script . Copiez le script ci-dessous et collez-le dans la fenêtre de script. Pour exécuter l'exemple de script, cliquez sur le menu Édition et sélectionnez Exécuter le 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 );
);
)
)
)
)
)
)
);
Documentation complémentaire
Vous trouverez plus d'informations sur le langage de script JMP dans leGuide de création de scripts JMP. Vous pouvez accéder au guide depuis JMP en cliquant sur leAidemenu et sélectionnezAide JMPDans la table des matières en ligne, choisissezGuide de script.
[Auparavant JMP Note 46984]
J'ai regardé le script et il ressemble à ce dont j'ai besoin, cependant, je ne parviens pas à comprendre comment ajouter le script de tracé résultant pour en profiter. Mon script d'origine ressemble à ceci mais il manque un bouton de rappel. Je ne sais pas où ajouter mon script ? De plus, dois-je rendre ce script modal ?
Slánn
Tête de clé
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 )
)
)
)
)
);
)
);