Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSLJ'essaie simplement d'obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée - mais d'une manière ou d'une autre, c'est étonnamment difficile.Voici ce que j'ai jusqu'à présent :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Select Where( :Wafer Number == "16" & :Die X == 3);
selRow = ( dt << get selected rows() )[0];
Row() = selRow;
site = :Site; // returns "1", should return "5" (:Site from row 15)
Je m'attends à ce que "site" se retrouve avec 5, mais il finit avec 1.Qu'est-ce que j'oublie ici?
Notez également que j'essayais quelque chose de similaire à ceci sur une table avec 33 millions de lignes et que JMP ne répondait pas pendant plusieurs minutes.J'expérimentais différentes façons de le faire, donc je lui ai peut-être demandé par inadvertance de créer d'abord une liste de 33 millions de choses, puis de prendre le 14 millionième élément.J'espère que la solution que je trouverai à la question ci-dessus ne le fera pas.
Automatisation et scriptRe : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSLVous devez référencer uniquement le premier élément [1] dans la matrice Get Rows Where
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Select Where( :Wafer Number == "16" & :Die X == 3 );
site = :site[(dt << get selected rows())[1]];
// or
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
site = :Site[(dt << get rows where( :Wafer Number == "16" & :Die X == 3 ))[1]];
Re : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSLAinsi, les données dans les tables de données sont fondamentalement stockées sous la forme d'un ensemble de colonnes qui sont chacune une liste d'entrées ?
(Et oui, je suis un codeur python donc j'ai raté le truc [0] -> [1] ...)
De plus, j'ai parcouru toutes les sections de la documentation JMP qui, selon moi, pourraient être utiles et je n'ai rien trouvé à ce sujet, c'est-à-dire la notation :site[rowNumber].Si quelqu'un sait où cela se trouve, j'aimerais lire cette section de la documentation.
Merci Jim!
Re : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSLAbonnement aux tables de données est un bon message dans la communauté et vous pouvez trouver de la documentation dans le guide de script Guide de script > Tables de données > Accéder aux valeurs des données est un bon point de départ. Il fournit des liens supplémentaires vers d'autres pages avec plus d'informations
Re : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSL@txnelson : Cette approche prend la majeure partie d'une seconde complète pour renvoyer la valeur dans une grande table (33 millions de lignes).Sinon, la table se comporte bien, donc je pense que cette approche peut faire quelque chose de lourd sous la couverture ...Y a-t-il d'autres approches que je pourrais tester ?
--> MISE À JOUR : Je viens de réaliser que c'est l'appel "Get Selected Rows()" qui est lent, pas l'accès aux données.Curieux, ça devrait aller vite.
Re : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSLJ'utilise généralement Get Rows Where() sur Select Where, suivi de Get Selected Rows.Sauf si vous avez besoin de l'affichage visuel des lignes sélectionnées, j'ai toujours pensé que c'était plus rapide.
Re : Obtenir la valeur d'une colonne donnée sur la première ligne sélectionnée à l'aide de JSL@txnelson Mon véritable objectif n'était pas de "sélectionner où", mais plutôt de cliquer sur un point dans un tracé de générateur de graphique lié à la table de données (A), et je souhaite mettre à jour le filtre de données dans un tracé de générateur de graphique lié à la table de données (B).Le premier clic sélectionne les lignes, puis le JSL doit saisir le champ id de la ligne sélectionnée de la première table, puis coller cette valeur dans le filtre de données sur le tracé Graph Builder B.
Je l'ai fait fonctionner aujourd'hui (ouais !) en utilisant Get Selected Rows(), mais c'est juste curieux que cette fonction soit relativement lente sur de grands ensembles de données.Me fait penser qu'il cherche dans une colonne invisible tous les "1" ou quelque chose comme ça...
Merci pour votre aide!