Selección de estado de fila y colorDe acuerdo, he intentado varias cosas para intentar que esto funcione, pero todo lo que tengo hasta ahora es un script que no se puede usar funcionalmente. La secuencia de comandos de eliminación funciona muy bien, pero mientras que la secuencia de comandos de estado de fila funciona, no funciona de la manera que yo quiero, y espero que haya una manera de limpiarlo un poco.
dt << New Column ( "Row State 1",
Row State,
Set Formula ( If( :Alarm ID == "'00000D06", Color State(70))),
);
dt << New Column ( "Row State 2",
Row State,
Set Formula ( If( :Alarm ID == ("'000000B2"| "'000000BE"| "'0000013C"| "'0000013D"),
Color State(6))),
);
dt << New Column ( "Row State 3",
Row State,
Set Formula ( If( :Alarm ID == ("'0000000E"| "'00000144"| "'0000000A"| "'00000021"|
"'00000025"| "'00000027"| "'000000E9"| "'00000145"| "'000001E1"| "'00000F7C"),
Color State(1))),
);
dt << New Column ( "Row State 4",
Row State,
Set Formula ( If( :Alarm ID == "'00000E6E", Color State(38))),
);
dt << New Column ( "Row State 5",
Row State,
Set Formula ( If( :Alarm ID == ("'00000D3B"| "'00000230"| "'00000D42"), Color State(73))),
);
dt << New Column ( "Row State 6",
Row State,
Set Formula ( If( :Alarm ID == ("'0000003B"| "'00000072"| "'00000E8C"), Color State(37))),
);
dt << New Column ( "Row State 7",
Row State,
Set Formula ( If( :Alarm ID == "'00000DB6", Color State(78))),
);
dt << New Column ( "Row State 8",
Row State,
Set Formula ( If( :Alarm ID == "'00000E99", Color State(75))),
);
dt << New Column ( "Row State 9",
Row State,
Set Formula ( If( :Alarm ID == ("'00000E68"| "'00000E71"| "'00000E72"| "'00000E9A"),
Color State(72))),
);
dt << New Column ( "Row State 10",
Row State,
Set Formula ( If( :Alarm ID == ("'0000004E"| "'0000005C"| "'0000011C"| "'00000143"|
"'00000148"| "'000001D9"| "'00000DE9"| "'00000E41"), Color State(12))),
);
dt << New Column ( "Row State 11",
Row State,
Set Formula ( If( :Alarm ID == "'00000D2F", Color State(19))),
);
dt << New Column ( "Row State 12",
Row State,
Set Formula ( If( :Alarm ID == "'00000D2D", Color State(28))),
);
Básicamente, seleccione la fila que contiene un valor específico en la columna ID de alarma y establezca el estado de la fila en el color seleccionado. Lo que quiero que haga es establecer el estado de la fila y resaltar la fila con el color del estado de la fila, presumiblemente puedo hacerlo con un anexo después de establecer todos los estados de la fila.
Lo que hace esto, crea un estado de fila pero no lo aplica, tengo que aplicarlo manualmente, también crea un estado de fila individual para cada línea, que se desordena rápidamente, sospecho que puedo usar el otro para al menos elimine las líneas que no están presentes, lo que ayudaría. También parece que las líneas con múltiples opciones en realidad no funcionan, esperaba poder hacer que funcionara para no tener que hacer 1 línea por código.
Espero que alguien pueda ayudarme, y seguir trabajando cuando tenga tiempo, ¡gracias!
Re: Seleccionar estado de fila y colorEste funciona muy bien, gracias! Una de las bellezas de este sistema (ya veces las maldiciones) es que hay múltiples formas diferentes de abordar el mismo problema. El próximo será bastante desafiante, probablemente intentaré abordarlo la próxima semana jajaja (¡o podría ser muy simple y aún no lo sé!)Re: Seleccionar estado de fila y colorCreo que esto funcionaría para ti.Esto supone que aún no tiene un estado de color y que ninguno de sus elementos se superpone.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
color_aa = associative array(
{
// list of values are the first item, color state is the second in each list.
{{12, 13, 16}, 3},
{{14, 15}, 4},
{{17}, 5}
}
);
dt << Select Rows([1, 5, 9]);
rs = dt << Get Row States;
for(values = color_aa << First, !isempty(values), values = color_aa << Next(values),
rows = dt << Get Rows Where(Contains(values, :age));
color = color_aa[values];
rs[rows] = rs[rows] + 2^8*color;
);
dt << Set Row States(rs);
Re: Seleccionar estado de fila y colorSi desea cambiar el Estado de color para cada una de las filas, en función de sus selecciones, el siguiente script parcial es para la estructura que desea utilizar para realizar los cambios.
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If(
N Rows( Loc( {"'00000D06"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 70 ),
N Rows( Loc( {"'000000B2", "'000000BE", "'0000013C", "'0000013D"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 6 ),
N Rows(
Loc(
{"'0000000E", "'00000144", "'0000000A", "'00000021", "'00000025", "'00000027", "'000000E9", "'00000145", "'000001E1", "'00000F7C"},
:Alarm ID[i]
)
) > 0, Row State( i ) = Color State( 1 ),
N Rows( Loc( {"'00000E6E"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 38 ),
N Rows( Loc( {"'00000D3B", "'00000230", "'00000D42"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 73 )
)
);Re: Seleccionar estado de fila y colorclaramente tampoco puedo hacer que mi fórmula funcione ^.^
En pocas palabras, quiero que la Fila con el valor X se resalte en un color
Fila con valor Y y Z resaltado en otro color
etc...
los colores específicos ya están en el guión, aparentemente el | o el argumento es el problema al seleccionarlos, simplemente no estoy seguro de la forma correcta de expresarlo.
Re: Seleccionar estado de fila y colorPuede que no esté entendiendo bien tu pregunta.Pero aquí está mi mejor suposición.En primer lugar, nunca he estado a punto de hacer funcionar tu fórmula. No puedes hacer "algo" == ("cosas"|"algo") y hacer que se evalúe como verdadero.Al menos que yo sepa.Hice un ejemplo de lo que creo que estás tratando de hacer, pero podría estar muy lejos.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
// this doesn't work
dt << New Column("Test", formula(:age == (12 | 14 | 16)));
//this should
values = {12, 14, 16};
rows = dt << Get Rows Where(Contains(values, :age));
//assuming they don't have color
dt << Select Rows([1, 5, 9]);
wait(1);
rs = dt << Get Row States;
//2^8*3 = color state(3) = red
rs[rows] = rs[rows] + 2^8*3;
dt << Set Row States(rs);