Suscriba una celda en un conjunto de datosHola a todos,
Estaba tratando de suscribir una celda en un conjunto de datos, pero nunca funcionó. Por ejemplo, me gustaría recibir un mensaje en el que se cambia el valor de algunas celdas particulares. Aquí hay un ejemplo:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Example",
TB=Table Box(
Data Table Col Box( :height )
)
);
TB<<SET cell="" changed="" function=""></SET>Una vez que cambie los valores en la columna "altura", se registrará el valor correspondiente en el cuadro de la tabla de datos. Sin embargo, la ventana de advertencia no se abrirá mientras el valor cambie. Básicamente, me gustaría recibir mensajes de la tabla de datos como lo hizo Subscribe () para una / varias celdas. Cualquier idea será apreciada.
Re: Suscribir una celda en un conjunto de datosEsas dos soluciones son geniales y funcionan para mí. Gracias de nuevo por la ayuda y realmente me ayuda mucho!Re: Suscribir una celda en un conjunto de datos¡Me gusta!
Re: Suscribir una celda en un conjunto de datosLa "función de cambio de celda establecida" no funciona para el cuadro de datos de la tabla (), a pesar de estar incluida en el índice de secuencias de comandos.
Aquí hay una idea para la solución en dos columnas (ocultas) en la tabla de datos.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("orig_height", values(:height << get values), hide(1));
dt << New Column("on_change",
Formula(
If(height != orig_height,
New Window("Warning", Text Box("The cell value has been changed"));
.;
)
),
hide(1)
);
New Window("Example", Table Box(dtcb = Data Table Col Box(:height)));Re: Suscribir una celda en un conjunto de datosNo tengo conocimiento de ninguna manera de activar directamente un cambio en un valor de datos en una tabla de datos, y luego hacer que afecte a un cambio en un Cuadro de tablas (). Sin embargo, a continuación hay una solución alternativa que es un poco extraña, pero hace el trabajo ......... También espero que otro miembro de la comunidad JMP tenga una forma más directa de resolver este problema.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Setup a matrix of the current values
holdMatrix = dt:Height << Get Values;
// A Graphics Script will be triggered every time a
// graph changes.
// Therefore, it can be used to trigger a change in
// a data table
// Open a graph that will have a data point for every
// entry in the data table.
cc = Control Chart(
Sample Size( 1 ),
KSigma( 3 ),
Chart Col( :height, Run Chart( Show Center Line( 0 ) ) )
);
// The chart is not intended to be displayed, only used as
// a trigger. Therefore it needs to be hidden. If an
// "Invisible" element is added to the chart, the graphics
// trigger does not seem to work, however, if the "show window"
// message is sent, the Graphics Script continues to work
Report( cc ) << show window( 0 );
// Add a script to the Chart, to make the changes in
// the Table Box
Report( cc )[FrameBox( 1 )] << Add Graphics Script(
ncb << delete;
tb << append( ncb = Number Col Box( "string", dt:height << get values ) );
// If any value in the data tables Height column changes,
// this If statement will detect it
If( Min( holdMatrix == dt:height << get values ) == 0,
New Window( "Warning", Text Box( "The cell value has been changed" ), );
holdMatrix = dt:height << get values;
);
);
// Open the display window, with the desired table box
nw = New Window( "Example",
TB = Table Box(
ncb = Number Col Box( "string", dt:height << get values ),
)
);
// When the display window is closed, cleanup the
// environment by closing the trigger chart
nw << on close( Report( cc ) << close window );
Re: Suscribir una celda en un conjunto de datosHola Jim,
Gracias por tu gran idea Sin embargo, intentaba hacer lo mismo que el cuadro de datos de la tabla de datos: vincular un valor de la tabla de datos una vez que el valor de una celda determinada cambiara. Por lo tanto, los datos se actualizarán directamente a la tabla de datos en lugar de teclearlos de los usuarios. Perdón por la confusion.
Tzu-Chun
Re: Suscribir una celda en un conjunto de datosEl problema parece ser que no está utilizando un cuadro de Col editable () para la tabla. He cambiado su Cuadro de datos de la tabla de datos () por un Cuadro de edición de números () y la funcionalidad que especificó ahora funciona.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Example",
TB=Table Box(
number Col Edit Box( "string",dt:height<<GET values=""></GET>