¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Vale, estoy perplejo y finalmente me he resignado al hecho de que no sé lo suficiente sobre JSL como para hacer esto por mi cuenta. Todavía soy bastante nuevo en JSL, pero quiero simplificar las cosas para las personas con las que trabajo. He creado un script que se acerca a lo que quiero, pero no puedo descubrir cómo hacer que mi función de selección de filas use información ingresada manualmente en un cuadro de edición de texto.
El objetivo es que el usuario presione un botón de Diario que abrirá una ventana con un cuadro de texto en el que puede ingresar información. Luego, podrá presionar el cuadro de botón directamente debajo del campo de edición, que ejecutará un script para seleccionar filas que contengan la cadena de texto que escribió. He pegado lo que tengo hasta ahora, pero sé que hay una desconexión con las líneas 6 y 9. Mi intención era asignar la entrada del cuadro de edición de texto como un objeto, pero creo que ahí es donde me estoy equivocando. Simplemente no puedo conciliar cómo obtener la información escrita en el cuadro de edición de texto en la parte de selección de filas. ¡Muchas gracias por cualquier ayuda!
Lot Identifier = New Window("Assay Identifier by Lot Tested",<BR />Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ), <BR />vlistbox(<BR />H Center Box(Text Box("Input Lot ID")),<BR />Spacer Box(size(1,10)),<BR />H list box( text box("Lot: "), ID=Text Edit Box()),<BR />H Center Box(<BR />Button Box("Select Rows with Lot Number", Current Data Table() << Row Selection(<BR />Select where( Contains( :assay, ID ) ),<BR />Match case( 0 ),<BR />Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )<BR />)))<BR />)<BR />)<BR />)VentanasRe: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?No tengo idea de por qué está formateando el JSL de esa manera, pero aquí hay solo una copia y pega directa:
Identificador de lote = Nueva ventana ("Identificador de ensayo por lote probado",
Cuadro de borde (superior(10), inferior(10), izquierda(120), derecha(120),
vlistacuadro(
Cuadro central H (Cuadro de texto ("Ingresar ID de lote")),
Caja espaciadora (tamaño (1,10)),
Cuadro de lista H (cuadro de texto ("Lote: "), ID=Cuadro de edición de texto()),
Caja central H(
Cuadro de botones ("Seleccionar filas con número de lote", Tabla de datos actual() << Selección de filas(
Seleccione dónde (Contiene( :ensayo, ID ) ),
Coincidir mayúsculas y minúsculas (0),
Diálogo( Editar( Contiene( Columna de origen( :ensayo ) ) ), Mantener abierto el diálogo( 0 ) )
)))
)
)
)
Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Hay varias formas de hacerlo. Aquí te dejo una:
New Window( "Example: Text Edit Box",
Outline Box( "Enter a string", H List Box( Text Box( "String:" ), value = Text Edit Box( "" ) ) ),
);
txtValue = value << Get Text();
print(txtValue);
Utilice el cuadro de edición de número() si desea capturar un número en lugar de texto.
Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Por alguna razón, esto no me funciona. Quiero que lo que se escriba en el cuadro de texto se convierta en el término que se utiliza en la función Row Selection(). De todos modos, agradezco la información. Es muy posible que no lo esté implementando correctamente. Reorganicé la fórmula de la siguiente manera:
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Select Assays By Lot", Lot ID = Lot << get text() ) )
)
)
);
Current Data Table() << Row Selection(
Select where(
Contains( :assay, Print( Lot ID ) ),
Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )
)
);
Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Para ingresar código JSL, hay este botón en el editor:

Para editar una publicación, utiliza el triángulo a la derecha de la publicación y haz clic en "Editar respuesta":

Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Sí, así es como lo ingresé en la primera publicación. Pero cuando presioné "publicar", todo se complicó. Descubrí la función de edición antes hoy, pero pensé que no valía la pena preocuparse por eso.
Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Pude hacer que funcionara parcialmente gracias a tu aporte, @mzwald , así que gracias nuevamente. El script a continuación es lo que tengo y solo requiere que tenga dos botones en lugar de uno (lo cual es un poco desafortunado). El primer botón asigna el texto a un objeto, luego el segundo ejecuta el script que identificará las filas que contienen el texto (almacenado como objeto). Si puedo descubrir cómo asignar dos funciones a un botón, estaré contento, pero al menos tengo algo que funciona por ahora.
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Set", Lot ID = Lot << get text() ) ),
H Center Box(
Button Box( "Select", Current Data Table() << Row Selection( Select where( Contains( :assay, Lot ID ) ) ) )
)
)
)
);
Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Puedes agregar todo lo que está dentro del mismo script dentro de un cuadro de botones. Solo recuerda "pegarlos" con ;
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Assay Identifier = New Window("Assay Identifier by Lot",
Border Box(top(10), bottom(10), Left(120), Right(120),
V List Box(align("Center"),
Text Box("Input Lot ID", << Set Font Size(16)),
Spacer Box(size(1, 10)),
H List Box(
Text Box("Lot: "),
Lot = Text Edit Box("", << Set Width(200), << Set N Lines(5))
),
Button Box("Select",
Lot ID = lowercase(lot << get text);
If(!Is Missing(Lot ID),
Current Data Table() << Row Selection(Select where(Contains(lowercase(:name), Lot ID)))
)
)
)
)
);
La página de ayuda de JMP tiene (algo) buena documentación sobre JSL. Por ejemplo, para el cuadro de botones
Y el índice de secuencias de comandos (del menú de ayuda de JMP) es muy útil una vez que te acostumbras a utilizarlo (puede que te resulte útil esto Desde el escritorio de Jarmo: Cómo usar el índice de secuencias de comandos como tu búsqueda JMP® para un uso más eficiente del índice de secuencias de comandos)

Re: ¿Cómo almacenar un valor ingresado en un cuadro de texto como un objeto en JSL?Gracias por eso. La semana pasada intenté hacer que funcionara la función de pegamento, pero por alguna razón debo haber tenido un error mental. Ahora está todo bien
. ¡Gracias a todos los que me ayudaron a lograrlo!