Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Hallo,
Ich möchte bei einem Mouseover eine Datenbankabfrage ausführen.
In meinem Fall habe ich viele Millionen Bilder, bin aber nur daran interessiert, nur sehr wenige davon einzeln zu sehen.
Ich habe einen Fall anhand von Daten aus den Datensätzen „Big Class“ und „Big Class Families“ nachgebildet.
Hier ist das Szenario:
Aus ' Große Klasse „Ich trage Gewicht gegen Größe auf.
Aus Interesse möchte ich sehen, wie JAMES aussieht.
Ich habe ein Bild von ihm in ' Familien der großen Klasse ' Also dachte ich, ich könnte einen Blick darauf werfen, indem ich eine Abfrage ausführe, wenn ich mit der Maus über JAMES' Markierung im GB-Streudiagramm fahre.
Ich habe versucht, die Funktionalität „Hover Label/Paste Graphlet“ zu nutzen. Aus dem folgenden Skript können Sie ersehen, dass die Abfrage problemlos durchgeführt werden kann, aber leider musste ich „JAMES“ fest in die Abfrage codieren.
Was ich brauche, ist, dass der Name „JAMES“ beim Mouseover in eine Variable eingefügt und später im SQL verwendet wird. Auf diese Weise konnte ich das Bild einer beliebigen Person betrachten, indem ich einfach mit der Maus über den/die interessierenden Punkt(e) fuhr.
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt = Open( "$Sample_Data/Big Class Families.jmp" );
//ImageFor = "JAMES";
ImQ = Query(
Table( dt, "t1" ),
"SELECT name, picture From t1 WHERE name = \!"JAMES\!" "
);
)
)}
)
)
);Die letzte Anwendung dient der Überprüfung von Halbleiterwafern, wobei nach der Erstellung einer Waferkarte auf Basis der Defektpositionen die Abfrage zurück zur Datenbank geht und das Bild für den/die interessierenden Defekt(e) abruft. Wenn die Anzahl der Fehler gelegentlich sehr groß ist, ist es nicht praktikabel, alle Bilder zu Überprüfungszwecken in die Datentabelle zu laden.
Danke,
Philipp
DatenzugriffMassenanpassungBetreff: Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Sie haben mir gerade den Tag versüßt, guter Herr.
Das ist wirklich großartig!
Danke,
Nascif
Betreff: Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Hallo,
Wir entschuldigen uns für die Verzögerung bei der Rückmeldung mit der versprochenen Demonstration.
Im Videolink unten sehen Sie die Anwendung im Einsatz.
Verknüpfung: https://www.loom.com/share/73150b6a45654d789a6d040bb661cddf
Aus dem Video:
Mithilfe von JMP werden Fehlerdaten aus der Inspektionstool-Datenbank erfasst.
JMP fasst dann die Fehleranzahl nach Los/Wafer zusammen und zeigt sie in einem Liniendiagramm an.
Wenn es einen interessierenden Wafer gibt, fahre ich einfach mit der Maus über die Markierung für die Anzahl der Defekte und ein Wafer-Defekt-Layout wird anhand der zuvor erfassten Daten erstellt.
Nachdem ich einen Wafer von Interesse ausgewählt habe, kann ich den Mauszeiger über eine Defektmarkierung auf der Waferkarte bewegen, wodurch eine SQL-Abfrage in der Bilddatenbank ausgeführt und das Defektbild angezeigt wird.
Auf diese Weise ist es nicht erforderlich, eine große Anzahl von Fehlerbildern in der Datentabelle zu speichern. Erinnern Sie sich einfach an die wenigen Bilder, die Sie interessieren, und sehen Sie sich diese noch einmal an.
Vielen Dank für Ihre Unterstützung bei der Skripterstellung.
- Philipp
PSIch werde diese Anwendung am 9. Oktober in der Nordic JMP User Group vorstellen 
Betreff: Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Exzellent!
Sich auf etwas freuen.Betreff: Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Hallo Nascif,
Vielen Dank für Ihre schnelle Antwort und tolle Lösung. Das ist genau die Funktionalität, die ich gesucht habe.
Ich werde versuchen, ein Beispiel der endgültigen Anwendung zu erstellen und es mit Ihnen zu teilen.
Sláinte,
Philipp
Betreff: Wie führe ich eine Abfrage beim Mouseover aus und verwende dabei Daten aus dem zugrunde liegenden Datenpunkt?Hallo @jpol ,
Das ist ein wirklich cooles Beispiel, und Sie haben dort 99 % erreicht.
Die gesuchte Variable befindet sich im lokalen Kontext:
ImageFor = local:_name;
Die Graphlet-JSL-Erweiterungen werden in einem lokalen Block ausgeführt, den wir Hover Label Execution Context oder kurz HLEC nennen. Es enthält Variablen mit Daten und Metadaten (z. B. Spaltennamen), die aus der Diagrammdefinition und dem zugrunde liegenden visuellen Element extrahiert wurden. Die Dokumentation der HLEC-Variablen finden Sie hier Hier.
Im obigen Codefragment habe ich mir die Tatsache zunutze gemacht, dass der Inhalt beschrifteter Spalten im HLEC namentlich verfügbar ist (mit dem Präfix „_“), aber Sie hätten den Inhalt jeder Spalte in der zugrunde liegenden Tabelle auch mithilfe von erhalten können eine direkte Indexreferenz, etwa so:
ImageFor = Column(local:_dataTable, "name")[local:_firstRow];
Es ist wichtig, hier den Befehl Column() zu verwenden, um sicherzustellen, dass Sie den Wert aus der Tabelle erhalten, die mit dem Diagramm verknüpft ist, und nicht aus der Tabelle, die Sie geöffnet haben, um das Bild abzurufen.
Bitte sehen Sie sich die beigefügten Skripte an, die Ihr Design implementieren, und entwickeln Sie es dann weiter, um das Bild auf den Miniaturansichten anzuzeigen und die sekundäre Tabelle erst durch Klicken zu öffnen.
Vielleicht möchten Sie sich auch diese Community-Diskussionen ansehen, in denen es um ähnliche Szenarien geht:
* https://community.jmp.com/t5/Discussions/Hover-graphlet-from-another-data-table/mp/296005
* https://community.jmp.com/t5/Discussions/Hover-label/td-p/287358
Auf dem Community File Exchange, Etikettenbetrachter Und Wiki-Reader sind Beispiele für erweiterte Graphlet-Anpassungen, die zeigen, wie mehrere Bilder bzw. externe Bilder angezeigt werden.
Zu guter Letzt noch ein schamloser Anstoß für meine bevorstehende Discovery-Präsentation über Graphlets und die zugrunde liegenden „Klempnerarbeiten“.
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/From-Details-on-Demand-to-Wandering-Workflows-Getting-to-know/ta-p/281539
Beifall,
Nascif