Error al ejecutar el complemento directamente en la página de inicio de JMPHola comunidad JMP:
Guardo 2 scripts en complementos y se produce un error en determinadas situaciones. Los scripts funcionan de la siguiente manera:
- El primer complemento creará una nueva tabla y creará varias columnas nuevas. Llamemos a esta nueva tabla "calcular tabla".
- A continuación, ejecutaré el segundo complemento en "calcular tabla", requerirá abrir otro archivo existente (llamémoslo "tabla de datos sin procesar"), luego obtener datos de la "tabla de datos sin procesar" e ingresar algo en la "tabla de cálculo".
//This is the first script
Names Default To Here( 1 );
New Table( "Calculate table");
dt = current data table();
newcolumn = {"X", "Y"};
for each({colval},newcolumn,
dt << new column(colval);
);
//This is the starting lines of 2nd script
Names Default To Here( 1 );
dt = current data table();
file = Pick file( "Select raw data table" );
if(is empty(file),
show("No file selected");
stop();
);
Try(
dt2 = open(file);
,
show("No file selected");
stop();
);<BR /> // The following code are not shown here
Situación sin error:
- Si abro cualquier tabla de datos, ejecuto el primer complemento y luego ejecuto el segundo complemento en la nueva tabla, funciona.
Situación con el error:
- Si ejecuto el primer complemento directamente en la página de inicio de JMP y luego ejecuto el segundo complemento, el segundo complemento tendrá un error.
Básicamente, el segundo complemento obtiene los datos y la fórmula de la columna de la tabla de datos sin procesar, los introduce en la tabla de cálculo y crea una nueva ventana con un control deslizante. Este control no funciona cuando ocurre un error, pero la obtención de datos y la fórmula sí funcionan.
Automatización y scriptingRe: Error al ejecutar el complemento directamente en la página de inicio de JMPAdivinando: la tabla de datos actual no es la esperada. Quizás deberías imprimirla en el registro para verificarla. Creo que la tabla de datos actual está en un contexto que suele pertenecer a una ventana, y la ventana de inicio está agregando otro contexto. Al ejecutar el complemento desde la tabla, probablemente (1) te asegures de que la tabla esté actualizada al tocarla y (2) obtengas el contexto que tiene esa tabla como actual.
Re: Error al ejecutar el complemento directamente en la página de inicio de JMPHice lo que dijiste, imprimí dt y dt2, y son correctos.
Luego me di cuenta de que cuando llamo columnas en el cuadro deslizante, no especifiqué qué tabla de datos, por lo que puse dt: antes de la columna
También agrego una tabla de datos actual más (dt) nuevamente en el medio del código después de cerrar dt2
Ahora funciona bien.
lubPP = Lineup box(NCol(1),
PPtb = Text Box( "PP: " || Char( PPmin ) ),
PPsb = Slider Box(
PPmin, PPmax, PPValue,
PPb << Set Text( "PP: " || Char( PPValue ) );
:PP << set each value(PPValue); // I should use dt:PP here
new = dt:NewPP << get values;