Error "Nombre no resuelto" con el uso de la función personalizadaHola,
Estoy intentando definir y usar una función personalizada dentro de un script JMP. ¿Funcionará bien? A partir de ahora, cuando llega a la línea para llamar a la función (JSload), aparece el siguiente error en el registro.
Nombre no resuelto: JSload en acceso o evaluación de 'JSload', JSload(temp) /*###*/
Paso a la función una cadena de caracteres "temp" (un nombre de archivo con la ruta adecuada para un archivo xlsx) e intento usar el comando Abrir para importar el contenido de ese archivo a una tabla de datos. Sin embargo, creo que se está quedando atrapado en la llamada inicial a la función. Aquí está el script y la función de función a partir de ahora. La variable "temp" parece estar hecha correctamente (verificada en el archivo de registro).
El código para el comando Abrir proviene de un "guión de guardado" después de una importación de datos inicial realizada manualmente.
Gracias,
José
================================================
Para( índice1 = 1,índice1 <= 1, índice1++,
temp = (ruta de archivo||lista de archivos[índice1]);
JSload(temp);
);
JSload = Función ({temp},
Abierto(
temperatura,
Hojas de trabajo( "Hoja1"),
Usar para todas las hojas ( 1 ),
Concatenar hojas de trabajo ( 0 ),
Crear columna de concatenación (0),
Configuración de la hoja de trabajo(
1,
Tiene encabezados de columna (1),
Número de filas en encabezados (1),
Los encabezados comienzan en la fila (1),
Los datos comienzan en la fila (2),
Los datos comienzan en la columna (1),
Los datos terminan en la fila (0),
Los datos terminan en la columna (0),
Filas extendidas replicadas ( 1 ),
Suprimir filas ocultas (1),
Suprimir columnas ocultas( 1 ),
Suprimir columnas vacías (1),
Tratar como jerarquía (0)
);
);
Re: Nombre de error no resuelto con función personalizada<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gracias Eric. ¡Ese era el truco!
José
Re: Nombre de error no resuelto con función personalizadaHola, Joe,
En realidad, creo que reutilizar la variable "temp" no es el problema, porque JMP dice que "JSload" es lo que no puede encontrar.Creo que el problema es que tu función se define *después* de llamarla.En JMP, su función debe definirse antes de llamarla.Mueva la sección "JSload = function({temp},...)" antes del bucle for y sospecho que funcionará.
Además, parece que le falta un paréntesis de cierre y un punto y coma al final de la definición de la función.
Esta versión funciona para mí:
ruta de archivo = "c:\usuarios\público\temp\" ;
lista de archivos = { "miPrueba.xlsx" };
CargaJS = Función ({temperatura},
Abierto (
temperatura,
hojas de trabajo( "Hoja1" ),
Usar para todas las hojas ( 1 ),
Concatenar hojas de trabajo ( 0 ),
Crear columna de concatenación ( 0 ),
Configuración de la hoja de trabajo(
1 ,
Tiene encabezados de columna ( 1 ),
Número de filas en encabezados ( 1 ),
Los encabezados comienzan en la fila ( 1 ),
Los datos comienzan en la fila ( 2 ),
Los datos comienzan en la columna ( 1 ),
Los datos terminan en la fila ( 0 ),
Los datos terminan en la columna ( 0 ),
Filas extendidas replicadas ( 1 ),
Suprimir filas ocultas ( 1 ),
Suprimir columnas ocultas ( 1 ),
Suprimir columnas vacías ( 1 ),
Tratar como jerarquía ( 0 )
);
);
);
Para ( índice1 = 1 ,índice1 <= 1 , índice1++,
temp = (ruta de archivo||lista de archivos[índice1]);
JSload(temp);
);
HH,
eric
Re: Nombre de error no resuelto con función personalizadaHola Joe,
El problema es que está utilizando el nombre de la variable "temp" para su ruta de archivo y para el argumento en la definición de su función. Si reemplaza las dos instancias de "temp" en su declaración de función con un nombre de variable diferente y no utilizado, su secuencia de comandos debería funcionar.
-Alemán