Utiliser des variables dans le nom du cheminBonjour,
Veuillez me pardonner si c'est une question triviale, je n'ai pas beaucoup d'expérience avec JSL.
J'essaie d'ajouter une image à l'étiquette de survol à l'aide du code JSL et je souhaite définir le chemin de l'image à l'aide d'une variable. J'ai un dossier d'images et je souhaite qu'elles soient appelées à l'aide d'une variable de ma table.
Par exemple, mes images sont étiquetées de 1 à 100 et j'ai une colonne dans mon tableau appelée « numéro d'image ». Je veux pouvoir les appeler, comme ceci :
PictureBox(Open("c:/iris/"picture number" .jpg", jpg));
Est-ce possible?
Merci beaucoup!
Personnalisation de masseRe : Utiliser des variables dans le nom du cheminWow, excellent exemple, @jthi ! Merci de l'avoir partagé !
L'astuce ici est que lorsque vous créez le nom fin de l'image à partir d'une colonne de tableau, vous devez indiquer le nom de la colonne ET la ligne. Dans l'espace de noms Local renseigné par le contexte d'exécution du graphlet, la ligne actuelle est disponible dans la variable local:_firstRow. Ainsi la construction :
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
Pour plus d'informations sur cette variable et d'autres, voir Contexte d'exécution de l'étiquette de survol .
Re : Utiliser des variables dans le nom du cheminMerci beaucoup, cela fonctionne très bien.
Re : Utiliser des variables dans le nom du cheminEssayez de consulter le journal pour voir quelles erreurs vous obtenez. Très probablement quelque chose comme ceci : « L'espace de noms « local_ » n'est pas défini lors de l'accès ou de l'évaluation de « local_:PicAdress » ».
Essayez quelque chose comme ceci :
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
Plus d'informations éventuellement auprès de : Comment exécuter une requête au survol de la souris, en utilisant les données du point de données sous-jacent ?
Modifier:
J'ai ajouté un exemple de script. Il créera quelques fichiers (10 par défaut) dans $TEMP (et tentera de les supprimer à la fermeture de la fenêtre) et créera une fenêtre avec deux générateurs de graphiques :
- Tout d'abord, nous construirons un chemin à partir des données dans le générateur de graphiques en utilisant cette idée :
PictureBox(Open("c:/iris/" || local:_PicAdress || ".jpg", jpg))
- La deuxième consiste à utiliser uniquement les informations de ligne du générateur de graphiques et à obtenir des données basées sur la ligne de la table de données.
Zone d'image (Ouvrir (Colonne ("PicAdress")[local:_firstRow],jpg))
Re : Utiliser des variables dans le nom du cheminMerci pour les réponses.
J'ai une question complémentaire. Je veux que l'étiquette de survol obtienne l'adresse du fichier à partir d'une colonne. Ma colonne a l'adresse elle-même, par exemple, le texte dans ma colonne (nommée PicAdress) est "c:/iris/picNumber.jpg" .
Cependant, je n'arrive pas à faire en sorte que l'étiquette de la masure accepte cette variable. j'ai essayé d'utiliser :
PictureBox(Open(local:_PicAdress, jpg))
sans succès.
Lorsque j’entre simplement l’adresse dans la colonne, il n’y a aucun problème.
PictureBox(Open("c:/iris/" || local:_PicAdress || ".jpg", jpg))
Aucun conseil?
Re : Utiliser des variables dans le nom du cheminVous voudrez peut-être vérifier ce fil. Ils avaient le même cas d’utilisation. Le fil de discussion contient de nombreux exemples de script qui devraient vous être utiles.
Survolez l'étiquette
Re : Utiliser des variables dans le nom du cheminVérifiez le journal pour les messages. Un ou plusieurs des éléments suivants pourraient vous aider.
Créez le nom du chemin dans une variable et imprimez-le dans le journal, puis transmettez la variable à ouvrir.
Ajoutez des guillemets autour du 2ème paramètre pour ouvrir.
Ajoutez la portée de la table de données avant le nom de la colonne.
Ajoutez un indice de numéro de ligne après le nom de la colonne.
edit : utilisez la fonction char() pour convertir un numérique en caractère !
filename = "c:/iris/" || char(dt:picture number[1]) || ".jpg";
show(filename);
PictureBox(Open( filename, "jpg"));
Re : Utiliser des variables dans le nom du cheminSi vous consultez l'exemple donné par Hover Label Editor pour Picture Graphlet
// Example:
// Graph Builder(Variables(Y(local:_measurements[1])), Elements(Histogram(Y)))
// Example:
// PictureBox(Open("c:/iris/" || local:_Species || ".jpg", jpg));la syntaxe semble un peu spéciale. Peut-être que ça fonctionnerait avec quelque chose comme ça :
PictureBox(Open("c:/iris/" || char(local:_picture number)|| ".jpg", jpg));Re : Utiliser des variables dans le nom du cheminL'utilisation d'un numéro d'image spécifique fonctionne bien, mais je ne peux pas insérer de nom de variable (la colonne variable est "numéro d'image") dans ce chemin. Par exemple, ce qui suit ne fonctionne pas. Une idée de comment résoudre ce problème ?
PictureBox(Open("c:/iris/" || :picture number|| ".jpg", jpg));
Re : Utiliser des variables dans le nom du cheminmerci! je vais essayer.
Re : Utiliser des variables dans le nom du cheminOui, quelques variantes de ceci :
img << saveimage( "f:/path/x" || Char( imagenumber ) || ".png", "png" );
x est le préfixe avant le numéro et n'est pas requis par le système d'exploitation.