Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Hallo,
Ich versuche, ein einfaches Skript zu erstellen, das meine Daten analysiert.
Wenn ich auf die mit dem Skript verknüpfte Miniaturansicht drücke, möchte ich, dass dies der Fall ist
1. Bitten Sie den Benutzer, die Bereiche einzugeben
2. Erstellen Sie eine Datentabelle, die die Maximal- und Minimalwerte anzeigt
3. Erstellt ein Diagramm mit den Mindest-, Höchst- und Zielwerten darin.
Bisher kann ich nur das Skript für die Datentabelle oder das Diagramm besorgen und es separat in Verknüpfungen in JMP integrieren. Ich kann nicht herausfinden, wie ich es dazu bringen kann, ein Abfragefeld für den Benutzer zu generieren, und ich kann das Diagramm und die Datentabelle nicht zusammen integrieren. Können Sie mir ein grundlegendes Tutorial-Set empfehlen, das dabei helfen könnte?
Mit freundlichen Grüße,
Elaina
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Hallo Jarmo,
Danke noch einmal! Noch eine Frage: Warum funktioniert mein Skript, wenn ich userFirstName und userLastName verwende, aber nicht, wenn ich b1,b2 im Text zur Definition des Dateipfads verwende:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "Defining User Name", <<MODAL></MODAL>
Am besten,
Spät
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Sie erhalten diesen Fehler, weil Sie ein modales Fenster verwenden und es „zu früh“ schließen. Modale Fenster sind spezielle Fenstertypen, die grundsätzlich die Verwendung bestimmter Schaltflächentitel erfordern Skripthandbuch > Bäume anzeigen > Modale Fenster in JSL > Ein modales Fenster erstellen
Notiz: Modale Fenster erfordern mindestens eine Schaltfläche zum Schließen des Fensters. Sie können verwenden OK , Ja , NEIN , oder Stornieren um modale Fensterschaltflächen zu beschriften. Wenn Sie nicht mindestens eine dieser Schaltflächen in ein modales Fenster einfügen, fügt JMP eine hinzu OK Taste.
Entfernen Sie das w << closeWindow; über die Schaltflächen zum Aktualisieren der Zeichenfolge. Wenn Sie das Fenster schließen möchten, wenn diese Schaltfläche gedrückt wird (Sie haben dann die Schaltfläche „OK“ überflüssig), fügen Sie die Schaltfläche „OK“ hinzu und senden Sie dann eine Klicknachricht an sie. Ich denke, Sie können die Schaltfläche „OK“ sogar ausblenden, wenn Sie möchten
Names Default To Here(1);
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window("prototype",
<<MODAL></MODAL>
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Hallo Jarmo,
Danke schön! Das hat wunderbar funktioniert! Jetzt bin ich jedoch auf zwei weitere Probleme gestoßen. Wenn ich sie beschreiben darf:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "prototype", <<MODAL></MODAL>
Erstens spuckt das Drücken von Update-Strings zwar die richtige Tabelle aus, wirft aber auch einen Fehler aus:

Zweitens „funktioniert“ das Skript, dh es führt den Import mehrerer Dateien durch, wenn ich die Variablen userFirstName und userLastName verwende, funktioniert aber nicht, wenn ich b1, b2 in der verketteten Zeichenfolge verwende. Meine Vermutung, warum, ist, dass der Teil, den ich zum Definieren der Variablen b1 und b2 verwende (mithilfe des Textbearbeitungsfelds), lokal ist. Sind die b1,b2-Variablen im verbleibenden Skript nicht weiterhin vorhanden? Wenn das der Fall ist, wie kann ich dafür sorgen, dass sie als globale Variablen existieren?
Wie werde ich den Fehler los? Es scheint daran zu liegen, dass ich dem Fenster eine <<-Modalklausel hinzugefügt habe. Aber ich muss dies tun, um das Skript anzuhalten und dem Bediener zu ermöglichen, zu überprüfen, ob die Namenseingabe korrekt war.
Im Idealfall ist der Workflow, den ich erstellen möchte, der folgende:
Der Benutzer führt das Skript aus
Das Skript öffnet ein Popup-Fenster, in dem der Benutzer aufgefordert wird, seinen Vor- und Nachnamen anzugeben
Mit dem Skript kann der Benutzer überprüfen, ob seine Eingabe korrekt ist (die Anzeige des filePathString wäre besser als die aktuelle Ausgabe).
Nachdem der Benutzer auf „OK“ geklickt hat, fährt das Skript fort und verwendet die neuen Variablen in mehreren verschiedenen filePathStrings.
Es gibt viele andere Möglichkeiten, wie ich für meine Zwecke ein Dateneingabe-Textfeld in dieses Skript integrieren könnte, daher wäre ich für jede Hilfe sehr dankbar.
Danke,
Spät
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Sie erhalten „Senden“ dorthin, weil es das ist, was in der Tabelle „ausgewertet“ wird (<< bedeutet). Schicken() ) Höchstwahrscheinlich reicht es aus, Ihre Liste einfach mit Eval List() zu umschließen, um die Werte dort auszuwerten
Names Default To Here(1);
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window("prototype", // opens a window with a title and this content...
Border Box(top(20), bottom(20), Left(20), Right(20), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box(Text Box("Report Generator")), // a second title, centered
Spacer Box(size(1, 30)), // a little vertical space
H List Box(Text Box("First Name: "), b1 = Text Edit Box(userFirstName)), // data entry
Spacer Box(size(1, 10)), // a little vertical space
H List Box(Text Box("Last Name: "), b2 = Text Edit Box(userLastName)), // more data entry
Spacer Box(size(1, 30)), // a little vertical space
H Center Box( // center the button
Button Box("Update Strings", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table("StringCheck",
New Column("Name",
Character,
Set Values(Eval List({b1 << get text(), b2 << get text()}))
)
);
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Hallo Craige,
Ich hoffe, dass es in Ordnung ist, auf einen alten Thread zu antworten. Ich möchte einige Variablen erstellen, die später in einem Skript als Zeichenfolgen verwendet werden sollen (Benutzerverzeichnisse für den Dateiimport, die sich je nach Benutzer ändern) – ich versuche, Ihr Skript anzupassen, um dies zu erreichen.
Die Idee ist, dass die Variablen zunächst mit Standardwerten erstellt werden. Dann erscheint das Eingabefeld, der Benutzer ändert die Werte, das Skript fährt fort und verwendet die nun aktualisierten Variablen in einem Import.
//Import multiple files
Multiple File Import(
<<SET folder=""></SET>
Im Skript steht also Folgendes an erster Stelle:
// Defining firstname and lastname string
userFirstName = "XXXX";
userLastName = "YYYY";
//changing username variables based on user input
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "First Name: " ), b1=Text Edit Box( userFirstName ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "Last Name: " ), b2=Text Edit Box( userLastName ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "Update Strings", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "StringCheck", New Column( "Name", Character, Set Values( {b1<< get text(), b2 << get text()} ) ) );
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);Ich erhalte erfolgreich das Dateneingabefenster und eine Tabelle namens StringCheck mit einer Zeichenspalte „Name“ – die beiden Werte lauten jedoch „Senden“:

Ich habe ein paar verschiedene Dinge ausprobiert, um es zum Laufen zu bringen, aber ich kann beim besten Willen nicht herausfinden, woher „Senden“ kommt.
Für jede Hilfe dankbar, danke,
Spät
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Hm. Ich frage mich, ob ich diese JSL getestet habe. Die NumberEditBox aktualisiert die v1/v2-Variable nicht, wenn das Feld geändert wird, sodass der Bericht immer derselbe ist. Das sollte es sein:
v1 = 30; // two numbers with default
v2 = 40; // values; these will go in a data table
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "value 1: " ), b1=Number Edit Box( v1 ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "value 2: " ), b2=Number Edit Box( v2 ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "make report", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "Untitled", New Column( "a", Set Values( {b1<<GET></GET>
Mit den zusätzlichen Variablen b1 und b2 zum Merken der Felder und der <
The report isn't created until after the button is pressed. Artistic license.Der Bericht wird erst erstellt, nachdem die Schaltfläche gedrückt wurde. Künstlerische Lizenz.
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Es scheint eine weitere Instanz dieses Threads zu geben Hier . Bitte beachten Sie auch die Antwort, die ich dort gepostet habe.
Betreff: Wie zeige ich ein Textfeld an, in dem der Benutzer zur Eingabe aufgefordert wird?Sie können in JMP mit Ihrer benutzerdefinierten Eingabeaufforderung entweder einen modalen oder einen nichtmodalen Dialog erstellen.
Bei modalen Dialogen können Sie nichts anderes tun, bis Sie sie abgeschlossen haben. http://www.jmp.com/support/help/Modal_Windows.shtml
Mit nichtmodalen Dialogen können Sie in anderen Fenstern arbeiten und später zum modalen Fenster zurückkehren: http://www.jmp.com/support/help/Constructing_Display_Trees.shtml#259363
Ein nichtmodaler Prototyp dessen, was Sie beschreiben, könnte so aussehen:
v1 = 30; // two numbers with default
v2 = 40; // values; these will go in a data table
w = New Window( "prototype", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "value 1: " ), Number Edit Box( v1 ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H List Box( Text Box( "value 2: " ), Number Edit Box( v2 ) ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "make report", // this script runs when the button is pressed...
// make a new table with the values...
dt = New Table( "Untitled", New Column( "a", Set Values( {v1, v2} ) ) );
// launch a platform to analyze the data...
dt << Distribution( Continuous Distribution( Column( :a ), Quantiles( 0 ), Summary Statistics( 0 ), Vertical( 0 ), Outlier Box Plot( 0 ) ) );
// optionally, close the dialog. Or, you might want to run it again...
w << closeWindow; // just the dialog, not the report
)
)
)
)
);
Prototype dialogPrototyp-Dialog