Cómo borrar correctamente un controlador de estado de filaTengo un controlador de estado de fila muy simple que se asegura de que una fila seleccionada nunca se pueda deseleccionar.El problema es que quiero desactivar esa funcionalidad y continuar con las operaciones normales.
Aquí está el script simple que bloquea la fila 15 para que siempre esté seleccionada.
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
x=15;
dt << select rows(x);
setrow = function({x},dt<<CLEAR select=""></CLEAR>
Entonces, ahora la pregunta es, ¿cómo elimino el controlador de estado de fila, sin cerrar y volver a abrir la tabla de datos?Puedo cambiar el controlador de estado de fila a una función diferente, pero preferiría simplemente eliminar el controlador de estado de fila.
¿Alguien tiene una respuesta?
Tabla de datossecuencias de comandosRe: Cómo borrar correctamente un controlador de estado de filaCreo que solo necesita asignar vacío a la variable que almacenó previamente la referencia al controlador. Debe usar una llamada a la función Wait( 0 ) antes de desasignar el controlador para asegurarse de que todas las actualizaciones se actualicen y el script esté sincronizado. (Gracias a Dan Schikore por el consejo sobre Wait).
Vea este ejemplo y examine el registro después de que se ejecute. Solo los cambios de estado de las dos primeras filas provocan la salida al registro.
Names Default To Here( 1 );
// example data set
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// example handler
f = Function( {a}, Show( a ) );
// assign handler
rs = dt << make row state handler( f );
// test handler
dt << Select Rows( 1 );
dt << Select Rows( 5 );
Wait( 0 );
// de-assign handler
rs = Empty();
// test absence of handler
dt << Select Rows( 3 );
dt << Select Rows( 9 );Re: Cómo borrar correctamente un controlador de estado de filaUna vieja pregunta, pero ¿por qué no simplemente configurar rs=0?
Re: Cómo borrar correctamente un controlador de estado de fila<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Lo siguiente parece borrar el controlador de estado de fila (pero no los estados de fila actuales):
Borrar Globales ( rs ) ;
Re: Cómo borrar correctamente un controlador de estado de filaGracias.
Re: Cómo borrar correctamente un controlador de estado de filaCopio/pego el código JSL en MS-Word, luego lo copio/pego desde Word hasta aquí.Por ejemplo:
función_vacía = función ({ X } , { z } ,
z = 1 ;
) ;
rs = dt << Crear controlador de estado de fila ( función_vacía ) ;
Re: Cómo borrar correctamente un controlador de estado de filaProbablemente no sea la solución correcta, pero asigno una función vacía al controlador de estado de fila:
empty_function = function({x},{z},
z = 1;
);
rs = dt << Make Row State Handler(empty_function);
De alguna manera no funciona si la función está completamente vacía, así que agregué z=1 como 'código ficticio'.
Saludos
Pedro
PD: ¿Cómo puede formatear el código de muestra como 'código' (como lo hizo)? Parece que soy demasiado tonto para entender el software del foro.