Überblick
Wenn Sie die JMP ® Scripting Language (JSL) verwenden, um ein benutzerdefiniertes Fenster zu generieren, das den Benutzer zur Eingabe von Informationen auffordert, ist es häufig wünschenswert, eine Schaltfläche hinzuzufügen, die die Einstellungen von einem vorherigen Start des Fensters innerhalb derselben JMP-Instanz wiederherstellt. Ähnliche Funktionen sind verfügbar, wenn Sie eine Plattform interaktiv starten, z. B. indem Sie auf das Menü „Analysieren“ klicken und „Verteilung“ auswählen.
Derzeit gibt es keine integrierte JSL-Methode zum Erstellen einer Schaltfläche „Abrufen“, wie Sie sie in den Dialogfeldern „Verteilungsplattform starten“ und „Tabellenmenü“ sehen. Sie können jedoch Ihre eigene Implementierung erstellen.
Das folgende Beispiel generiert ein benutzerdefiniertes Fenster, in dem der Benutzer Spalten aus der aktiven Datentabelle in entsprechende Rollen umwandeln kann. Wenn auf die Schaltfläche „OK“ geklickt wird, werden die Einstellungen des Benutzers in Variablen gespeichert, die in einem benannten Namespace definiert sind. Bei nachfolgenden Starts des Fensters löscht die Schaltfläche „Abrufen“ alle aktuellen Einstellungen und stellt die Werte aus dem Namespace wieder her.
Anweisungen
Klicken Sie in einer JMP-Sitzung auf das Menü Datei und wählen Sie Neu ► Skript . Kopieren Sie das folgende Skript und fügen Sie es in das Skriptfenster ein. Um das Beispielskript auszuführen, klicken Sie auf das Menü Bearbeiten und wählen Sie Skript ausführen .
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 );
);
)
)
)
)
)
)
);
Zusätzliche Dokumentation
Weitere Informationen zur JMP Scripting Language finden Sie imJMP-SkripthandbuchSie können auf das Handbuch in JMP zugreifen, indem Sie auf dasHelfenund wählen SieJMP HilfeWählen Sie im Online-InhaltsverzeichnisSkripthandbuch.
[Vorheriger JMP-Hinweis 46984]
Ich habe mir das Skript angesehen und es sieht nach dem aus, was ich brauche. Ich kann jedoch nicht herausfinden, wie ich das resultierende Plotskript hinzufügen kann, um es zu nutzen. Mein ursprüngliches Skript sieht so aus, aber es fehlt eine Rückrufschaltfläche. Ich bin mir nicht sicher, wo ich mein Skript anhängen soll. Und muss ich dieses Skript modal machen?
Slánn
SpannerHead
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 )
)
)
)
)
);
)
);