Wie führe ich beim Mouseover eine Abfrage mit Daten aus dem zugrunde liegenden Datenpunkt aus?Hallo,
Ich möchte eine Datenbankabfrage bei einem Mouseover ausführen.
In meinem Fall habe ich viele Millionen Bilder, bin aber nur daran interessiert, nur sehr wenige einzeln zu sehen.
Ich habe einen Fall mit Daten aus Big Class- und Big Class Families-Datensätzen verspottet.
Hier ist das Szenario:
Von ' Große Klasse Ich zeichne Gewicht gegen Größe.
Aus Interesse möchte ich sehen, wie JAMES aussieht.
Ich habe ein Bild von ihm in ' Große Klassenfamilien Also dachte ich, ich könnte einen Blick darauf werfen, indem ich eine Abfrage ausführe, wenn ich mit der Maus über JAMES 'Marker auf dem GB-Streudiagramm fahre.
Ich habe versucht, die Hover Label / Paste Graphlet-Funktionalität zu nutzen. Aus dem folgenden Skript können Sie ersehen, dass die Abfrage leicht ausgefü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 in SQL verwendet wird. Auf diese Weise konnte ich das Bild jeder Person betrachten, indem ich einfach mit der Maus über die interessierenden Punkte 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 betrifft die Überprüfung von Halbleiterwafern, bei denen nach der Erstellung einer Wafermap basierend auf den Fehlerpositionen die Abfrage zur Datenbank zurückkehrt und das Bild für die interessierenden Fehler abruft. Wenn die Anzahl der Fehler gelegentlich recht groß ist, ist es nicht praktisch, alle Bilder zu Überprüfungszwecken in die Datentabelle zu laden.
Vielen Dank,
Philip
GrafikSkriptingBetreff: Wie führe ich eine Abfrage beim Mouseover mit Daten aus dem zugrunde liegenden Datenpunkt aus?Hallo @jpol ,
Dies ist ein wirklich cooles Beispiel, und Sie haben dort 99%.
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, kurz HLEC, nennen. Es enthält Variablen mit Daten und Metadaten (wie in Spaltennamen), die aus der Diagrammdefinition und dem zugrunde liegenden visuellen Element extrahiert wurden. Hier finden Sie die Dokumentation der HLEC-Variablen Hier.
Im obigen Codefragment habe ich die Tatsache ausgenutzt, dass der Inhalt von beschrifteten Spalten in der HLEC nach Namen (mit dem Präfix "_") verfügbar ist, aber Sie könnten auch den Inhalt einer beliebigen Spalte in der zugrunde liegenden Tabelle mithilfe von erhalten haben eine direkte Indexreferenz wie folgt:
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 dem Diagramm zugeordnet ist, und nicht aus der Tabelle, aus der Sie das Bild abgerufen haben.
Bitte lesen Sie die angehängten Skripte, die Ihr Design implementieren, und entwickeln Sie es dann weiter, um das Bild auf den Miniaturansichten anzuzeigen und die sekundäre Tabelle nur beim Klicken zu öffnen.
Vielleicht möchten Sie auch diese Community-Diskussionen überprüfen, 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 Label Viewer und Wiki Reader sind Beispiele für erweiterte Anpassungen von Graphlets, die zeigen, wie mehrere Bilder bzw. externe Bilder angezeigt werden.
Last but not least ein schamloser Plug für meine bevorstehende Discovery Presentation on Graphlets und die zugrunde liegenden "Sanitäranlagen".
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/From-Details-on-Demand-to-Wandering-Workflows-Getting-to-know/ta-p/281539
Prost,
Nascif
Betreff: Wie führe ich eine Abfrage beim Mouseover mit Daten aus dem zugrunde liegenden Datenpunkt aus?Hallo Nascif,
Vielen Dank für Ihre schnelle Antwort und großartige Lösung. Dies ist genau die Funktionalität, nach der ich gesucht habe.
Ich werde versuchen, ein Beispiel für die endgültige Anwendung zu erstellen und es mit Ihnen zu teilen.
Sláinte,
Philip
Betreff: Wie führe ich eine Abfrage beim Mouseover mit Daten aus dem zugrunde liegenden Datenpunkt aus?Ausgezeichnet!
Sich auf etwas freuen.Betreff: Wie führe ich eine Abfrage beim Mouseover mit Daten aus dem zugrunde liegenden Datenpunkt aus?Hallo,
Entschuldigung für die Verzögerung bei der Rückmeldung mit der versprochenen Demonstration.
Im folgenden Videolink sehen Sie die verwendete Anwendung.
Verknüpfung: https://www.loom.com/share/73150b6a45654d789a6d040bb661cddf
Aus dem Video:
Bei Verwendung von JMP werden Fehlerdaten aus der Inspektionswerkzeugdatenbank erfasst.
JMP fasst dann die Fehlerzahlen nach Lot / Wafer zusammen und zeigt ihnen ein Liniendiagramm an.
Wenn es einen interessierenden Wafer gibt, bewege ich einfach den Mauszeiger über die Fehlerzählmarkierung und ein Waferdefektlayout wird unter Verwendung der zuvor gesammelten Daten gezeichnet.
Nachdem ich einen interessierenden Wafer ausgewählt habe, kann ich mit der Maus über eine Fehlermarkierung auf der Waferkarte fahren, die eine SQL-Abfrage in der Bilddatenbank ausführt und das Fehlerbild anzeigt.
Auf diese Weise muss keine große Anzahl von Fehlerbildern in der Datentabelle gespeichert werden. Erinnern Sie sich einfach an die wenigen interessanten Bilder und überprüfen Sie sie.
Vielen Dank für Ihre Unterstützung bei der Skripterstellung.
- Philip
PS Ich werde diese Anwendung am 9. Oktober in der Nordic JMP User Group vorstellen:)
Betreff: Wie führe ich eine Abfrage beim Mouseover mit Daten aus dem zugrunde liegenden Datenpunkt aus?Sie haben gerade meinen Tag gemacht, guter Herr.
Das ist wirklich großartig!
Vielen Dank,
Nascif