Ventana de búsqueda de informaciónHola,
Como nuevo usuario de .jsl, he intentado aprender mediante la producción de un pequeño script para extraer datos de la tabla de datos de muestra de la clase principal a partir de una entrada de usuario.
Para la mayoría de los problemas que he encontrado, las soluciones se pueden encontrar en estos foros de discusión, pero tengo algunas cosas adicionales que me gustaría agregar y sobre las que no puedo encontrar información.
- Si el usuario ingresa un nombre incorrecto (es decir, si no se encuentran filas coincidentes), ¿cómo puedo crear una ventana de alerta para que aparezca e informe al usuario de esto?
- En lugar de abrir una tabla de datos de subconjunto, ¿es posible imprimir el valor de celda devuelto en la propia ventana de la IU (debajo de los botones de búsqueda y cancelación)? o si no, a una nueva ventana similar a la ventana de alerta descrita anteriormente.
- ¿Se podrían realizar optimizaciones o mejoras generales en el script?
Gracias de antemano por cualquier ayuda,
No7
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName != "",
match_rows = dt << get rows where( :name == myName )
);
dt << subset( columns( cols[cb << get] ), rows( match_rows ) );
);
UIwin = New Window( "Big Class Age/Height Lookup",
Show Menu( 0 ),
Show Toolbars( 0 ),
//<<MODAL></MODAL>Re: Ventana de búsqueda de información @uday_guntupalli Fantástico lo siguiente funcionó;
If( Nrows(match_rows) == 0,
Text Box( "Serial Not Found."),
¡Gracias por su rápida respuesta!
Re: Ventana de búsqueda de información @ JMPUserNumber7 ,
Pruebe N Rows () si es un vector de fila N Cols () si es un vector de col.
Re: Ventana de búsqueda de información @uday_guntupalli Muchas gracias, esto es exactamente lo que estaba buscando, ¡no estaba al tanto de la función Anexar en este caso!
He actualizado la secuencia de comandos para devolver una cadena cuando no se ingresa ningún nombre y modifiqué ligeramente sus ediciones. Sin embargo no puedo hacer que lo siguiente funcione
If(IsEmpty(match_rows),
Text Box("The name you looked up does not exist")De leer aquí es porque JMP está devolviendo una matriz en lugar del texto deseado. ¿Alguna idea de un trabajo alrededor?
Gracias de nuevo.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName == "",
VL1 << Append( H List Box( Text Box( "Please enter a name.", <<BULLET point=""></BULLET>
Re: Ventana de búsqueda de información @ JMPUserNumber7 ,
Intenta hacer algo como esto:
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName != "",
match_rows = As List(dt << get rows where( :name == myName ))
);
// dt << subset( columns( cols[cb << get] ), rows( match_rows ) );
// My Edit
VL1 << Append(
H List Box(
If(IsEmpty(match_rows),
Text Box("The information you looked up does not exist")
,
Text Box("The information you looked up is" || char(dt[match_rows,cols[cb<<GET></GET>