Hilfe zum Datenfilter-Kontextfeld()Ich habe Probleme beim Einfügen einer Datenfilter-Kontextbox in mein Skript. Mein Skript wird verwendet, um Daten über SQL einzulesen, einige Tabellenfunktionen auszuführen und dann Diagramme innerhalb von Fenstern mit Registerkarten auszuspucken. Das macht es optisch ansprechender als das, was ich gemacht habe, da jeder einzelnen Ausgabe ein neues Fenster zugeordnet war und die Testingenieure auf mehrere Schaltflächen klicken mussten.
Ich habe diese Foren und auch den Scripting-Leitfaden gelesen. Das Problem, das ich habe, ist, wie man das einfügt, nachdem die Diagramme, Plots und Verteilungen ausgefüllt sind. Aus dem Scripting-Guide.
Ich habe versucht, die gleiche Philosophie anzuwenden, die Mr. txnelson Hat mir geholfen, aber ich schaffe es nicht, ein temporäres Feld zu erstellen und es dann zu füllen, nachdem ich auf meine Schaltflächen geklickt habe. Auch hier ist jede Hilfe willkommen.
D
Führung,
// --------------------------- From Scripting Guide -------------------------
dt = Open( "$SAMPLE_DATA/Hollywood Movies.jmp" );
win = New Window( "Shared Local Filter",
Data Filter Context Box(
// enclose the h list box that contains distribution and graph builder
H List Box(
// add the local data filter
// NOTE: My tables aren't created yet so i am getting an error here.
dt << Data Filter( Local ),
dt << Distribution(
Weight( :Profitability ),
Nominal Distribution(
Column( :Lead Studio Name )
),
Nominal Distribution(
Column( :Genre )
),
Histograms Only
),
dt << Graph Builder(
Variables(
X( :Genre ),
Y( :Domestic Gross ),
Y( :Foreign Gross, Position( 1 ) )
),
Show Control Panel( 0 ),
Elements(
Bar( X, Y( 1 ), Y( 2 ),
Legend( 2 ),
Bar Style( "Side by side" ),
Summary Statistic( "Mean" )
),
Frequencies( 0 ),
)
)
)
)
);
// --------------------------- My Data Pull Script Simplified -------------------------
Names Default To Here( 1 );
Close All( Data Tables, No Save );
Close All( Reports );
Clear Log();
Close All( journals, no save );
Clear Symbols();
sqlstartA = Today();
sqlendA = Today();
sqlstart = Format( sqlstartA, "yyyy-mm-dd" );
sqlend = Format( sqlendA, "yyyy-mm-dd" );
/************************************************************************************************************************************************/
/* */
/* ---------------------------------------------------------------[START EXAMPLE] ----------------------------------------------------------- */
/* */
/************************************************************************************************************************************************/
hay = New Window( "Test Database Tools",
V List Box(
V List Box(
Text Box(
"Product Engineering Database Tools",
<<SET font="" size=""></SET>
Betreff: Hilfe zur Datenfilter-Kontextbox()Das hat perfekt funktioniert, danke. Ich muss mich über „Ist skriptfähig“ informieren und sehen, wie es sonst noch verwendet werden könnte
Betreff: Hilfe zur Datenfilter-Kontextbox()Ja, mir ist zum ersten Mal aufgefallen, dass „Laden der Testdaten“ Teile der Benutzeroberfläche (des Filters) dupliziert, und wie Sie bereits betont haben, dupliziert „Hier klicken, wenn Sie fertig sind“ auch die Benutzeroberfläche.Sie haben erwähnt, dass Sie Probleme beim Löschen des Felds hatten, aber ich war mir nicht sicher, ob Sie (a) die Steuerelemente löschen möchten, damit sie nur einmal verwendet werden können, (b) den Filter löschen möchten, damit Sie ihn durch einen anderen ersetzen können.Meine vorherige Antwort bestand darin, eine Möglichkeit zu demonstrieren, (a) zu erreichen, ohne tatsächlich etwas löschen zu müssen – einfach je nach Status verschiedene Teile des Fensters auszublenden und anzuzeigen.
Im Anhang finden Sie eine weitere Modifikation des Skripts, das ich zum Löschen der Komponenten geändert habe.Ich speichere einen Verweis auf die Felder, die der Anzeige hinzugefügt werden.Jedes Mal, wenn die Boxen hinzugefügt werden, wird zunächst << Box löschen für die zuvor hinzugefügten Boxen aufgerufen.
Betreff: Hilfe zur Datenfilter-Kontextbox()Entschuldigen Sie. Wenn Sie das von Ihnen korrigierte Skript ausführen und auf die Schaltfläche „Klicken Sie hier, wenn Sie fertig sind“ klicken, wird das Anzeigefeld weiterhin angehängt. Ich hätte schwören können, dass Sie in Ihrer Antwort darauf hingewiesen haben, aber jetzt ist mir klar, dass es sich um ein anderes Thema handelt.
Betreff: Hilfe zur Datenfilter-Kontextbox()Mir ist nicht klar, was Sie innerhalb der Schleife tun möchten.Wenn Sie möchten, dass die Steuerelemente verschwinden, können Sie sie entweder löschen oder einfach ausblenden.Sie auszublenden ist vielleicht nicht ideal – sie befinden sich immer noch im Anzeigebaum –, aber das ist ein gängiger Ansatz.Hier ist ein Beispiel, das den Benutzer durch mehrere Eingabeschritte führt, wobei die Steuerelemente bei jedem Schritt ausgeblendet werden:
New Window( "Wizard Interface",
top = H List Box(
// Control panels
controls = Panel Box( "Inputs",
panel1 = V List Box(
Text Box("Panel 1"),
Button Box( "Next",
panel1 << Visibility( "Collapse" );
panel2 << Visibility( "Visible" );
)
),
panel2 = V List Box(
Text Box("Panel 2"),
Button Box( "Next",
panel2 << Visibility( "Collapse" );
panel3 << Visibility( "Visible" );
),
<<VISIBILITY></VISIBILITY>
Entspricht das dem, was Sie tun möchten?
Betreff: Hilfe zur Datenfilter-Kontextbox()Ich glaube, dass ich das Anhängen dieses Fensters mithilfe einer for-Schleife erreichen kann. Genau so, wie ich den Code i < = eingegeben habe
Danke
For( i = 1, i <= /* not sure what i would put in here */ , i ++,<BR /> sqlstart = Format( sqlstartA, "yyyy-mm-dd" );<BR /> sqlend = Format( sqlendA, "yyyy-mm-dd" );<BR /> Show( sqlstart, sqlend );<BR /> lineup1 << Append(<BR /> V List Box(<BR /> Spacer Box( Size( 5, 5 ) ), <BR /> Text Box( "Select Your Wafer(s)", <BR /> << Set Font Size( 15 ), <BR /> << Justify Text( "Center" ) <BR /> ),<BR /> Spacer Box( Size( 5, 15 ) ),<BR /> loaddata = Button Box( "Load The Test Data",<BR /> dt = current data table();<BR />// dt = Open( "$SAMPLE_DATA/big class.jmp", invisible )<BR /><BR />// Insert End of Script<BR />
Betreff: Hilfe zur Datenfilter-Kontextbox()Wie Sie in Ihrer Antwort darauf hingewiesen haben, wird das Fenster bei dem Problem mit „Klicken Sie hier, wenn Sie fertig sind“ angehängt, wenn darauf geklickt wird. Ich habe versucht, << die Box() zu löschen und ein paar andere Dinge, die erfolglos waren. Ich habe es jedoch geschafft, einige Throw()-Anweisungen einzufügen, obwohl keine Daten oder Wafer ausgewählt waren. Dies erweist sich als herausfordernd. Irgendwelche Vorschläge?Betreff: Hilfe zur Datenfilter-Kontextbox()Vielen Dank für deine und Jims Hilfe. An die automatische Neuberechnung habe ich überhaupt nicht gedacht. Und ein besonderer Dank für den Zusatz Data Filter Context Box(). Ich habe versucht, das zu verwenden, konnte aber die richtige Platzierung nicht herausfinden.
Was den Kalender angeht, stimme ich dir voll und ganz zu. Machen Sie daraus einen Umrissrahmen, der geöffnet und geschlossen werden kann.
Das Hauptfenster erfordert einige Ergänzungen und dauert zwei Wochen, sobald ich alle Diagramme, Verteilungen, Fit Y by X und Wafer Maps (Halbleiter-Toolkit) in den entsprechenden Fenstern habe. Die Probleme, bei denen Sie und Jim helfen, sind die niedrig hängenden Früchte dieses Analysetools. Ich habe das Gefühl, dass die größte Hürde darin bestehen wird, wie ich mit den Ausreißern umgehe. Ich habe GrubbsOutlierTest3.jsl auf diesen Boards gefunden und werde dies auf irgendeine Weise, Form oder Gestalt verwenden.
Danke nochmal.
D
Betreff: Hilfe zur Datenfilter-Kontextbox()Während Sie die Größe des Kalenderfeldobjekts nicht ändern können, können Sie stattdessen für denselben Zweck ein Zahlenbearbeitungsfeld verwenden. Stellen Sie das Format auf den gewünschten Datumsstil ein und dann wird während der Interaktion ein Kalender angezeigt, ansonsten handelt es sich jedoch nur um ein kleines Kästchen.
Names Default to Here( 1 );
nw = New Window( "Date Entry",
Outline Box( "Calendar Box Substitute",
neb = Number Edit Box( 01Jan2019,
<< Set Format( Format( "m/d/y", 12 ) )
)
),
H List Box(
Button Box( "OK",
date = neb << Get;
),
Button Box( "Cancel" )
)
);
Betreff: Hilfe zur Datenfilter-Kontextbox()Ich habe eine aktualisierte Version Ihres Skripts angehängt.Wie Jim betont, ist die automatische Neuberechnung nicht für die Verteilung festgelegt.Der Grund dafür ist, dass Ihre Datenfilter globale Filter und keine lokalen Filter sind.Beachten Sie in Ihrem Skript, dass zwar alle Berichte aktualisiert zu werden scheinen, sich jedoch der Status der Datentabellenzeilen ändert und die Ergebnisse auf beiden Registerkarten aktualisiert werden.
Ich habe zwei Änderungen vorgenommen, um die Filter lokal zu machen:
- Fügen Sie den Data Filter()-Befehlen die Option „Lokal“ hinzu
- Ihre HListBox() wurde auf jeder Registerkarte in eine Datenfilter-Kontextbox() geändert.Dadurch bleibt die Wirkung jedes Filters lokal auf der Registerkarte erhalten
Der lokale Datenfilter setzt automatisch das Auto-Recalc-Flag auf jeder zugehörigen Plattform.
Ich kenne keine Möglichkeit, den Kalender zu verkleinern.Ich bin mir nicht sicher, welchen Workflow Sie nach der ersten Datumsauswahl wählen.Sie könnten zwei Fenster in Betracht ziehen, ein Startfenster mit Datumsauswahl und ein Ergebnisfenster mit den Berichten.Sie können den Datumsbereich als Untertitel einfügen.
Wenn Sie beide im selben Fenster behalten möchten, können Sie die Kalender in einen Gliederungsknoten einfügen, der <Betreff: Hilfe zur Datenfilter-Kontextbox()Das macht absolut Sinn. Vielen Dank für Ihre Hilfe.
Betreff: Hilfe zur Datenfilter-Kontextbox()Der Grund dafür, dass sich Ihre Verteilung nicht ändert, wenn Sie die Auswahl in Ihrem Datenfilter ändern, liegt darin, dass die Option „Automatische Neuberechnung(1)“ in der JSL für die Verteilungen nicht festgelegt ist.
Was die Größenänderung der Kalenderboxen betrifft, sehe ich keine Möglichkeit, ihre Größe zu ändern. Ein anderes Community-Mitglied hat möglicherweise eine Methode, aber ich kann keine finden.
Betreff: Hilfe zur Datenfilter-Kontextbox()
Herr Nelson,
Ich habe versucht, das in mein Skript einzufügen, und es scheint, dass es nur einen Teil der Diagramme/Verteilungen aktualisiert.Ich habe ein aktualisiertes Skript angehängt, das genau das ist, was ich mit den Hinzufügungen einiger anderer Registerkarten hinter den beiden, die Sie sehen, versuche.
Ich habe auch ein gutes Beispiel für einen Datensatz angehängt, den ich einbeziehe. Diese Tabelle enthält Daten im Wert von 3 Wafern, um Ihnen eine Vorstellung zu geben.
Außerdem würde ich gerne wissen, ob es eine Möglichkeit gibt, die Größe der Kalenderfelder so zu ändern, dass sie weniger Platz beanspruchen und mehr für die Analyse übrig bleibt.
Danke
Betreff: Hilfe zur Datenfilter-Kontextbox()Tut mir leid, dass ich es nicht spezifiziert habe.
Ja, ein lokaler Datenfilter, der sich auf alle Diagramme auf der Registerkarte auswirkt. Ich werde mir gleich Ihr Skript ansehen.
Danke
Betreff: Hilfe zur Datenfilter-Kontextbox()Möchten Sie einen oder mehrere lokale Datenfilter für bestimmte Diagramme/Grafiken hinzufügen?
Möchten Sie einen Filter hinzufügen, der alle Diagramme basierend auf einem einzigen Filter ändert?
Möchten Sie, dass der Benutzer auf einen der Balken im Histogramm klickt und aus den ausgewählten Zeilen die anderen Diagramme und Grafiken ändert?
Angehängt ist eine Modifikation Ihres Skripts, die links von der Distribution Platform-Ausgabe einen Datenfilter hinzufügt und bei Auswahl alle an die Datentabelle angehängten Diagramme ändert.