Wählen Sie bestimmte Spalten aus, deren JSL-Name Code enthältDer Name enthält ein Skript:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
liefert alle Spalten, die a enthalten. Welcher Code muss hinzugefügt werden, um eine dieser Spalten durch Klicken oder Doppelklicken auf die Spalte im Listenfeld zu markieren?
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthält@ram_asra_gmail_ , dieser Link ist ein Beitrag, der den Aufbau einer ListBox-Such- und Auswahlschnittstelle beschreibt.Während einige der Diskussionen das JMP-Klassenobjekt verwenden, das in JMP14 verfügbar ist, beschreibt der erste Beitrag die Schnittstelle mithilfe von Funktionen: Sie funktioniert unter JMP 13.
Sehen https://community.jmp.com/t5/Discussions/Can-a-scripted-quot-widget-quot-be-converted-to-a-Class/mp/182529#M40268
Die an den ursprünglichen Beitrag angehängten Dateien (TEB_LB_Widget.JSL, TestTEBSelector.jsl, TestLBFilter.jsl) werden im Beitrag mit Screenshots erläutert.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältKönnen wir auch einen ähnlichen Filter für die Elemente in einer Liste durchführen? Danke RamBetreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältSehr gutes Beispiel. Könnten Sie auch eine ähnliche JSL für die Zeilenauswahl für eine Spalte haben?
Danke
RAM
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältPerfekt!
Jetzt funktioniert die JSL wie vorgesehen. Das macht die Sache viel einfacher. Danke noch einmal.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthält
JMP 13.2.1 hat dt << Go To (col ref) ; Ich habe kein 13.1. Hier ist also ein Testfall. Wenn dies funktioniert, ist das geänderte Skript beigefügt. Es fügte JSL zu „Bring Window to Front()“ und „Go To()“ hinzu.
Names Default to Here(1);
dt = open("$Sample_Data/Semiconductor Capability.jmp");
//select a column towards the end of the table
:PM_L1 << set selected(1);
wait(2);
dt << go to(:PM_L1);Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDu hast Recht. Ihr Code funktioniert. Mein Fehler war die Benennung des Symbols. Ich habe kein Leerzeichen verwendet.
Nachdem der Symbolname in „Spaltensuche“ geändert wurde, funktioniert es einwandfrei.
Eine letzte Frage zu diesem Thema wäre, welcher Code dem Skript hinzugefügt werden muss, um nicht nur die gefundene Spalte auszuwählen, sondern auch zu der gefundenen Spalte zu wechseln?
Dies würde den gesamten Prozess weiter verbessern, falls sich die Spalte nicht im sichtbaren Teil des Fensters befindet.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältIch weiß nicht, was du mit „ nach Schließen des Dialogs (über Icon in der Symbolleiste) ".
Welches Symbol? Ist das ein benutzerdefiniertes Skript?
Wenn Sie ein Skript haben, das zwar ausgeführt wird, jedoch nicht unter anderen Bedingungen, handelt es sich in den meisten Fällen um ein Scoping-Problem.Zum Beispiel hat das erste Skript, das ich Ihnen für JMP13 und 12 gegeben habe, funktioniert. Wenn sich jedoch die aktuelle Datentabelle ändert, während das Dialogfeld noch geöffnet ist, funktioniert die Syntax :colname nicht. Es war eine Schwäche in meinem Programm. Wenn ich jedoch :colname mit der Funktion char() und Verweis auf die Quelltabelle in eine Zeichenfolge „colname“ konvertiere, ist es robust.
Was auch immer Sie also über das Symbol oder das folgende Skript tun, führt zu einem Scoping-Problem und eine JMP-Version wird das Problem nicht beheben.Da Sie also nicht mitgeteilt haben, was Sie tun, kann ich nur auf einige Dinge hinweisen, auf die Sie achten sollten:
- Das Skript muss hier standardmäßig Namen verwenden, wenn Sie andere Skripte haben, die auf dt verweisen.
- Stellen Sie sicher, dass die ursprüngliche Zieltabelle die aktuelle Tabelle ist, bevor Sie erneut auf die Skriptschaltfläche klicken. (Menüleiste zeigt die Tabellenliste an).
Ich denke, Sie haben möglicherweise ein Scoping-Problem oder ein Problem mit der Tabellensperre. Viel Glück beim Finden.
Hier ist ein Screenshot, ich habe das Skript als Add-In hinzugefügt. Ich habe dies viele Male verwendet, während ich andere Dinge erledigt habe, habe es auf verschiedenen Tabellen verwendet und es dann noch einmal verwendet, und es funktioniert sowohl in JMP 13 als auch in JMP 12 gleich.Es handelt sich nicht um ein Versionsproblem.

Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältNochmals vielen Dank für Ihre Unterstützung und Geduld.
Das Skript ist besser, aber wie bereits erwähnt kann es trotzdem sein, dass es keine Funktion gibt. Nachdem Sie beispielsweise den Dialog geschlossen haben (über das Symbol in der Symbolleiste) und erneut eine zweite Suche durchführen, wählen Sie „Auf derselben Datentabelle ausführen“ aus. Vielleicht wird es mit JMP 14 besser.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDas letzte von mir gesendete Skript (geändert für Current Data Table) funktioniert sowohl für JMP 12 als auch für JMP 13. Hier ist ein Screenshot von JMP 12. Wie der Screenshot zeigt, handelt es sich hierbei um die JMP-Beispieldatentabelle.
Das Skript funktioniert jedoch nicht, wenn sich die aktuelle Datentabelle ändert, da << Ausgewählte Spalten abrufen eine Liste von Spaltenverweisen und nicht den Tabellennamen zurückgibt.Daher gibt :Chloroform einen Fehler zurück, wenn die aktuelle Datentabelle diese Spalte nicht enthält.Um das Skript robuster zu machen, habe ich Zeile 18 unten in die JSL unten geändert.Das Skript ist beigefügt.Dies sollte auch dann der Fall sein, wenn die ursprüngliche Tabelle nicht mehr die aktuelle Datentabelle ist. Wenn das Skript (hier) jedoch den Wert von dt ändert, während das Dialogfeld noch geöffnet ist, kommt es zu einer Namenskollision, die ein Problem verursacht. Oder wenn die Originaltabelle geschlossen wird, während der Dialog noch geöffnet ist, treten Probleme auf.
For(i=1, i<=nitems(_xx), i++, column(dt, char(_xx[i])) << set selected(0));

Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDie JSL arbeitet jetzt mit der Satrting-JSL zusammen:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Wenn die JSL in JMP 13.1.0 verallgemeinert ist (um sie in einer Symbolleiste zu verwenden), wie folgt:
Names Default To Here( 1 );
dt = Current Data Table();
Ich stoße auf das alte Problem => Keine Spaltenauswahl. Wissen Sie, ob dies speziell für JMP 13.10.0 ist?
Wenn ja, versuchen Sie nicht, das Problem zu beheben. Ich hoffe, dass ich bald JMP 14 haben werde.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältGroßartig. Jetzt arbeitet die JSL mit JMP 13.1. Ich schätze Ihre und Ians Ausdauer bei der Lösung der Frage sehr.
Vielen Dank
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDas tut mir leid. Ich habe JMP 13.1
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDieses Skript funktioniert in JMP 12 und JMP 13. Der Grund dafür, dass das vorherige Skript in früheren Versionen von JMP nicht funktioniert, liegt darin, dass die Datentabellenmeldungen angezeigt werden Klare Spaltenauswahl Und Spalten auswählen (Liste) sind nicht verfügbar. In früheren Versionen müssen die Spalten einzeln ausgewählt und wieder abgewählt werden, daher die unten aufgeführten erforderlichen Änderungen. Ich habe keinen Zugriff auf eine Version vor JMP 12.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältWelche Version von JMP verwenden Sie?
Wenn ich das von mir gesendete Skript ausführe, passiert Folgendes:
- Es erscheint der Dialog mit dem Filterfeld
- eintippen A , dann Alter auswählen, Alter wird hervorgehoben; Wählen Sie den Namen aus, dann wird der Name ausgewählt. Halten Sie die Steuertaste gedrückt und wählen Sie „Alter“ aus. Beide sind ausgewählt.
- löschen A und eintippen ei dann werden Gewicht und Größe ausgewählt, ähnliches Verhalten wie oben.
Tut mir leid, dass es bei Ihnen nicht funktioniert.Das von mir gesendete Skript funktioniert unter JMP 14.1 auf dem PC. Es funktioniert nicht in JMP 13.2.1. Bevor ich nach einer Alternative suche, welche Version von JMP verwenden Sie?
Wenn Sie eine Frage stellen, sollten Sie immer die von Ihnen verwendete JMP-Version angeben.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDanke für deine Ausdauer. Ich schätze es wirklich. Allerdings funktioniert die JSL immer noch nicht wie vorgesehen (siehe Bild).
Das Ziel besteht darin, die gleiche Funktion zu erhalten, die man durch die Verwendung von „Cols/Columns Viewer/Name Contains“ erhält. Die Ergebnisse, die im Suchfeld angezeigt werden, können angeklickt werden und als Ergebnis wird die spezifische Spalte in der Ursprungsdatentabelle ausgewählt.
Wenn der richtige JSL-Code verfügbar ist, kann der gesamte Spaltensuch-/-auswahlprozess viel schneller durchgeführt werden.

Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältVersuche dies
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthält
Vermisse ich etwas? Ich kann die ausgewählte Spalte in der Datentabelle nicht aufrufen.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältHerausgefunden:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ) )
);
ib = (fcb<<PARENT></PARENT>Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDanke für deine Unterstützung, Ian. Es funktioniert noch nicht so, wie ich es möchte.
Ich suche nach JSL-Code, mit dem ich allgemein nach bestimmten Spalten nach Namen suchen kann (Teil1) und dann die gewünschte Spalte im Listenfeld von Teil1 durch Doppelklick auswählen und die Spalte in der Datentabelle markieren kann.
Die allgemeine Suche Teil1 erfolgt mit JSL-Code:
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Column Search",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
Die Markierung Teil2 könnte für das Beispiel wie der Code aus dem Scripting-Index erfolgen
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << Go to( :BP 12F );
Wie müssen sie kombiniert werden, um die Spalten in einer Datentabelle zu finden, zu markieren und zu ihnen zu gelangen?
Betreff: Wählen Sie bestimmte Spalten aus, deren JSL-Name Code enthältIan,
Das ist so etwas wie eine verwandte Frage. Da die Blogger-Antwort lb<< Name Contains() hatte, ging ich davon aus, dass die Anforderung darin besteht, dass der Benutzer ein Filterfeld eingibt und alle Spalten ausgewählt werden.
Also habe ich versucht, das Filterfeld anzuzeigen (Filter anzeigen). Mehrere Versuche, diesen zweiten Menüpunkt über JSL zu aktivieren, sind mir fehlgeschlagen.
Gibt es eine Methode, um das Filterfeld zu aktivieren und den Filter zu konfigurieren? Ich kann die PopupBox-Menüanzahl und den Menütext abrufen, aber nicht die Auswahl.

Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältIch bin mir nicht sicher, ob ich es richtig verstanden habe, aber ist es das, was Sie suchen?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Make a FilterBoxSelector
New Window( "Filter Col Selector Example", lb = Filter Col Selector( width( 250 ) ));
// Define and set an 'action' script
actionScript =
Expr(
selected = lb << getSelected;
dt << clearColumnSelection;
dt << selectColumns(selected);
);
lb << setScript(actionScript);
// Try it out
lb << Name contains("sex");
Wait(3);
lb << Name contains("eight");Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältDanke für deine Antwort.Leider habe ich mit dem JSL-Update keine Ergebnisse erhalten. Im Moment weiß ich nicht warum.
Was ich eigentlich möchte, ist ein ähnliches Verhalten wie für Cols / Columns Viewer ... / Name Contains … in JMP.
Im Allgemeinen ist dies mit dem genannten JSL-Code aus dem Scripting Index möglich:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
Nachdem die Suchzeichenfolge ausgeführt wurde, möchte ich jedoch die gewünschte/ausgewählte Spalte in der Datentabelle per Doppelklick markieren. Dieser Teil fehlt noch oder funktioniert nicht im JSL-Code aus dem Scripting Index.
Betreff: Wählen Sie bestimmte Spalten mit dem JSL-Namen aus, der Code enthältVersuche dies
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
//select name
_xx = lb << get items;
_idx = Contains(_xx, "name");
lb << set selected( _idx, 1); //or 0 to unselectUm die verfügbaren Nachrichten für ein Objekt anzuzeigen, wählen Sie Hauptmenü > Skriptindex > Anzeigefeld > FilterColSelector