Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Salut,
Je voudrais exécuter une requête de base de données sur un mouseover.
Dans mon cas, j'ai plusieurs millions d'images, mais je ne souhaite en voir que très peu, une à la fois.
J'ai simulé un cas en utilisant des données provenant d'ensembles de données Big Class & Big Class Families.
Voici le scénario :
Depuis ' Grande classe ' Je trace le poids en fonction de la taille.
Par curiosité, je veux voir à quoi ressemble JAMES.
J'ai une photo de lui dans ' Familles de grande classe ' alors j'ai pensé que je pourrais jeter un coup d'œil en exécutant une requête lorsque je passe la souris sur le marqueur de JAMES sur le GB Scatter Plot.
J'ai essayé de tirer parti de la fonctionnalité Hover Label / Paste Graphlet. Dans le script ci-dessous, vous pouvez voir que la requête peut être facilement exécutée, mais malheureusement, j'ai dû coder en dur "JAMES" dans la requête.
Ce dont j'ai besoin, c'est que le nom "JAMES" soit mis dans une variable au survol de la souris et utilisé plus tard dans le SQL. De cette façon, je pouvais regarder l'image de n'importe quelle personne simplement en passant ma souris sur le ou les points d'intérêt.
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\!" "
);
)
)}
)
)
);L'application finale concerne l'examen des tranches de semi-conducteurs, où après avoir créé une carte de tranches basée sur les emplacements des défauts, la requête reviendrait à la base de données et extrairait l'image du ou des défauts d'intérêt. Lorsque le nombre de défauts est parfois assez important, il n'est pas pratique de charger toutes les images dans la table de données à des fins de révision.
Merci,
Philippe
Accès aux donnéesPersonnalisation de masseRe : Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Vous venez de faire ma journée, bon monsieur.
C'est vraiment génial !
Merci,
Nascif
Re : Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Salut,
Toutes mes excuses pour le retard à vous répondre avec la démonstration promise.
Dans le lien vidéo ci-dessous, vous verrez l'application en cours d'utilisation.
Lien: https://www.loom.com/share/73150b6a45654d789a6d040bb661cddf
De la vidéo :
À l'aide de JMP, les données sur les défauts sont collectées à partir de la base de données de l'outil d'inspection.
JMP résume ensuite le nombre de défauts par lot/wafer et leur affiche un graphique linéaire.
S'il y a une plaquette d'intérêt, je survole simplement le marqueur de nombre de défauts et une disposition de défaut de plaquette est dessinée à l'aide des données précédemment collectées.
Après avoir sélectionné une plaquette d'intérêt, je peux alors survoler un marqueur de défaut, sur la carte de plaquette, qui exécutera une requête SQL sur la base de données d'images et affichera l'image du défaut.
De cette manière, il n'est pas nécessaire de stocker un grand nombre d'images de défauts dans la table de données. Rappelez-vous et passez en revue les quelques images qui vous intéressent.
Merci pour votre soutien dans la scénarisation.
- Philippe
PSJe présenterai cette application dans le Nordic JMP User Group le 9 octobre 
Re : Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Excellent!
J'ai hâte d'y être.Re : Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Salut Nascif,
Merci pour votre réponse rapide et votre excellente solution. C'est exactement la fonctionnalité que je recherchais.
Je vais essayer de construire un exemple de l'application finale et de le partager avec vous.
Sláinte,
Philippe
Re : Comment exécuter une requête au passage de la souris, en utilisant les données du point de données sous-jacent ?Salut @jpol ,
C'est un exemple vraiment cool, et vous avez obtenu 99% là-bas.
La variable que vous recherchez est dans le contexte local :
ImageFor = local:_name;
Les extensions JSL du graphlet sont exécutées à l'intérieur d'un bloc local que nous appelons Hover Label Execution Context, ou HLEC en abrégé. Il contient des variables avec des données et des métadonnées (comme dans les noms de colonne) extraites de la définition du graphique et de l'élément visuel sous-jacent. Vous pouvez trouver la documentation des variables HLEC ici.
Dans le fragment de code ci-dessus, j'ai profité du fait que le contenu des colonnes étiquetées est disponible dans le HLEC par nom (avec un préfixe "_") mais vous pouvez également avoir le contenu de n'importe quelle colonne de la table sous-jacente en utilisant une référence d'index directe, comme ceci :
ImageFor = Column(local:_dataTable, "name")[local:_firstRow];
Il est important d'utiliser la commande Column() ici pour vous assurer que vous obtenez la valeur de la table associée au graphique, et non celle que vous avez ouverte pour obtenir l'image.
Veuillez consulter les scripts ci-joints qui implémentent votre conception, puis faites-la évoluer pour afficher l'image sur les vignettes et n'ouvrir la table secondaire qu'au clic.
Vous pouvez également consulter ces discussions de la communauté qui traitent de scénarios similaires :
* 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
Sur l'échange de fichiers communautaires, Afficheur d'étiquettes et Lecteur Wiki , sont des exemples de personnalisations avancées de graphlet qui montrent comment afficher plusieurs images et des images externes, respectivement.
Enfin et surtout, une prise éhontée pour ma prochaine présentation de découverte sur les graphlets et sa "plomberie" sous-jacente.
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/From-Details-on-Demand-to-Wandering-Workflows-Getting-to-know/ta-p/281539
Acclamations,
Nascif