Eliminación de la variable de columna/tabla a la que se hace referencia en la fórmula usando JSLHola,
Como se indicó en el tema de esta publicación, observé que los comandos JSL "Eliminar columna" o "Eliminar variable de tabla" no funcionan cuando cualquiera de las columnas tiene una función o la variable de tabla es parte de una función.
Al realizar esta acción "a mano", hay una ventana de advertencia adicional que informa al usuario sobre las consecuencias de dicha acción y le permite elegir una acción.
Entiendo que este comportamiento se introdujo intencionalmente, y estoy totalmente de acuerdo con eso.
Me gustaría preguntar si hay alguna opción/argumento/bandera/comando para omitir esta ventana al eliminar la variable de columna/tabla usando JSL.
Gracias por ayudar.
Tabla de datossecuencias de comandosRe: Eliminar variable de columna/tabla a la que se hace referencia en la fórmula usando JSLNo puedo replicar lo que entiendo como el problema sobre el que preguntas. Los siguientes scripts eliminan una variable de tabla y una columna dentro de una fórmula y una función dentro de cada fórmula.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << New Table Variable( "Days", 42 );
Wait( 5 );
dt << New Column( "test",
formula(
delTVar = Function( {theVar},
dt << Delete Table Variable( theVar )
);
rc = delTVar( "Days" );
:weight;
)
);
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Wait( 5 );
dt << New Column( "test",
formula(
delCol = Function( {theCol},
dt << delete columns( theCol )
);
rc = delCol( "height" );
:weight;
)
);Re: Eliminar variable de columna/tabla a la que se hace referencia en la fórmula usando JSLCreo que no hay ninguna bandera que pueda hacer esto. Tal vez un lugar para el elemento de la lista de deseos, creo que la bandera debería ser configurable de manera similar a la versión interactiva que solicita eliminar referencias, fórmulas o cancelar (tal vez también agregaría Throw).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("f", Numeric, Continuous, Formula(:height*weight));
dt << Delete Columns({"height", "weight"});
Imprimirá para iniciar sesión:
No se pueden eliminar las columnas seleccionadas mientras las fórmulas de las columnas restantes hacen referencia a algunas.
Eliminar una fórmula deja los datos sin cambios. Al eliminar referencias, se reemplaza cada referencia con un valor vacío. Estos efectos son permanentes y no se pueden deshacer.
Programable[]
Puede capturar este mensaje con Log Capture() y luego realizar algunos trucos JSL para eliminar referencias/fórmulas de antemano.