Usar variables en el nombre de la rutaHola,
Perdóneme si esta es una pregunta trivial, no tengo mucha experiencia trabajando con JSL.
Estoy intentando agregar una imagen a la etiqueta flotante usando código JSL y quiero definir la ruta de la imagen usando una variable. Tengo una carpeta de imágenes y quiero que se llamen usando una variable en mi tabla.
Por ejemplo, mis imágenes están etiquetadas del 1 al 100 y tengo una columna en mi tabla llamada "número de imagen". Quiero poder llamarlos, así:
PictureBox(Open("c:/iris/"picture number" .jpg", jpg));
¿es posible?
¡Muchas gracias!
La personalización en masaRe: Usar variables en el nombre de la rutaVaya, excelente ejemplo, @jthi ! ¡Gracias por compartirlo!
El truco aquí es que cuando estás creando el nombre fino de la imagen a partir de una columna de la tabla, debes indicar el nombre de la columna Y la fila. Dentro del espacio de nombres local poblado por el contexto de ejecución del graflet, la fila actual está disponible en la variable local:_firstRow. Así la construcción:
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
Para obtener más información sobre esta y otras variables, consulte Contexto de ejecución de etiqueta flotante .
Re: Usar variables en el nombre de la rutaMuchas gracias, esto funciona muy bien.
Re: Usar variables en el nombre de la rutaIntente consultar el registro para ver qué errores obtiene. Lo más probable es que sea algo como esto: "El espacio de nombres "local_" no está definido en el acceso o evaluación de 'local_:PicAdress'".
Pruebe algo como esto:
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
Más información posiblemente de: ¿Cómo ejecutar una consulta al pasar el mouse, utilizando datos del punto de datos subyacente?
Editar:
Agregué un script de ejemplo. Creará un par de archivos (10 de forma predeterminada) en $TEMP (e intentará eliminarlos al cerrar la ventana) y creará una ventana con dos creadores de gráficos:
- Primero construiremos una ruta a partir de los datos en el generador de gráficos usando esta idea:
PictureBox(Abrir("c:/iris/" || local:_PicAdress || ".jpg", jpg))
- El segundo es usar solo la información de fila del generador de gráficos y obtener datos basados en la fila de la tabla de datos.
Cuadro de imagen (Abrir (Columna ("PicAdress") [local:_firstRow],jpg))
Re: Usar variables en el nombre de la rutaGracias por las respuestas.
Tengo una pregunta de seguimiento. Quiero que la etiqueta flotante obtenga la dirección del archivo de una columna. Mi columna tiene la dirección en sí, por ejemplo, el texto en mi columna (llamada PicAdress) es "c:/iris/picNumber.jpg".
Sin embargo, no puedo conseguir que la etiqueta de la choza acepte esta variable. He intentado usar:
PictureBox(Open(local:_PicAdress, jpg))
sin éxito.
Cuando simplemente ingreso la dirección en la columna no hay problema.
PictureBox(Open("c:/iris/" || local:_PicAdress || ".jpg", jpg))
¿Algún consejo?
Re: Usar variables en el nombre de la rutaQuizás quieras revisar este hilo. Tenían el mismo caso de uso. El hilo contiene muchos ejemplos de scripts que le resultarán útiles.
Etiqueta flotante
Re: Usar variables en el nombre de la rutaConsulte el registro de mensajes. Uno o más de los siguientes podrían ayudar.
Cree el nombre de la ruta en una variable e imprímalo en el registro, luego pase la variable para abrir.
Agregue comillas alrededor del segundo parámetro para abrir.
Agregue el alcance de la tabla de datos antes del nombre de la columna.
Agregue un subíndice de número de fila después del nombre de la columna.
editar: use la función char() para convertir números en caracteres.
filename = "c:/iris/" || char(dt:picture number[1]) || ".jpg";
show(filename);
PictureBox(Open( filename, "jpg"));
Re: Usar variables en el nombre de la rutaSi observa el ejemplo que ofrece Hover Label Editor para Picture Graphlet
// Example:
// Graph Builder(Variables(Y(local:_measurements[1])), Elements(Histogram(Y)))
// Example:
// PictureBox(Open("c:/iris/" || local:_Species || ".jpg", jpg));la sintaxis parece un poco especial. Quizás funcionaría con algo como esto:
PictureBox(Open("c:/iris/" || char(local:_picture number)|| ".jpg", jpg));Re: Usar variables en el nombre de la rutaUsar un número de imagen específico funciona bien, pero no puedo insertar un nombre de variable (la columna de la variable es "número de imagen") en esta ruta; por ejemplo, lo siguiente no funciona. ¿Algúna idea de cómo arreglar esto?
PictureBox(Open("c:/iris/" || :picture number|| ".jpg", jpg));
Re: Usar variables en el nombre de la ruta¡gracias! Lo probaré.
Re: Usar variables en el nombre de la rutaSí, alguna variación de esto:
img << saveimage( "f:/path/x" || Char( imagenumber ) || ".png", "png" );
x es el prefijo antes del número y el sistema operativo no lo requiere.