Interfaz de usuarioHola,
He creado una interfaz de usuario y me gustaría hacerle algunos cambios. Esto se muestra a continuación:
Me gusta mover "Aceptar" y "Cancelar" a la parte inferior de la ventana y en "Seleccionar nombre de producto" solo elegir un producto (combinar la derecha y la izquierda). También me gustaría saber cómo elegir estas opciones y ponerlas en una variable para usarlas en secuencias de comandos adicionales.
He adjuntado el guión real.
Muchas gracias por su ayuda.

Re: Interfaz de usuarioMuchísimas gracias.
Re: Interfaz de usuarioPuede capturar el producto seleccionado en el código para el botón Aceptar.
okb = button box("OK",
one_product = rb1 << get selected;
),Re: Interfaz de usuarioCreo que si comprende el código que se le ha proporcionado, debería poder ampliar la interfaz de usuario para capturar el nombre de la variable por su cuenta.
Re: Interfaz de usuarioGracias. Funciona bien ahora. ¿Qué pasa con la elección del usuario para el nombre del producto? ¿Cómo capturo eso como un nombre de variable y lo uso después de cerrar la ventana?
Aprecio tu ayuda. Gracias
Re: Interfaz de usuarioComo está utilizando una ventana modal, debe mover el comando de grupo dentro de la nueva ventana ():
)
rb1 << group(rb2),
);
Re: Interfaz de usuarioEl problema es que estás usando una ventana modal.No procesaré esa línea que agrupa las cajas de radio hasta que cierres la ventana.
Puede hacer esto y mantener la ventana modal:
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
rb1 << group(rb2);
),
Re: Interfaz de usuarioHola,
Gracias. Su script funciona como se esperaba. Pero cuando lo combino con el personal en la parte superior de "Elegir producto", veo la siguiente imagen:

He adjuntado el script después de las modificaciones. Gracias por tu ayuda.
Re: Interfaz de usuarioJa, ja, me enseñaron mucho sobre JSL en Hogwarts.
Pero realmente el ingrediente secreto es el índice de guiones.Úsalo todo el tiempo.
Re: Interfaz de usuario
@pmroz escribió:
Si utiliza el método de grupo <<, puede tener cajas de radio una al lado de la otra que actúen como una sola caja de radio, es decir, solo se puede seleccionar una opción.Aquí hay un ejemplo:
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);
Hombre, eso es algo de brujería allí.¡Buen consejo!Gracias.
Re: Interfaz de usuarioSi utiliza el método de grupo <<, puede tener cajas de radio una al lado de la otra que actúen como una sola caja de radio, es decir, solo se puede seleccionar una opción.Aquí hay un ejemplo:
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);

Re: Interfaz de usuarioUna cosa que recomendaría es mover las líneas que establecen los formatos para str1 y str2 fuera de la función New Window().Puede definir todos los cuadros de visualización primero dentro de Nueva ventana () y luego modificar esos cuadros de visualización.Eso mantendrá su código un poco más limpio.
A continuación, puede mover el paréntesis de cierre del cuadro de lista V al final de la lista de cuadros de visualización.El cuadro de lista H que contiene los botones Aceptar y Cancelar está anidado en el mismo cuadro de lista H que contiene los cuadros del panel con sus botones de opción.Simplemente mueva el Cuadro de lista H que contiene Aceptar y Cancelar fuera de su contenedor Cuadro de lista H principal actual, y conviértalo en hermano de ese Cuadro de lista H dentro del contenedor principal Cuadro de lista V.Eso moverá esos botones a la parte inferior.
Tener varias columnas en un campo de botón de radio es complicado, y no estoy seguro de que valga la pena.Necesitará 2 de ellos como los tiene ahora (aunque yo los pondría a ambos en la misma caja del panel en lugar de separarlos).El problema es que no puedes tener una caja de radio que no tenga algo seleccionado.Por lo tanto, sería imposible borrar un cuadro de radio para que solo haya 1 selección en ambos cuadros de radio.Considere un cuadro de lista en su lugar para que pueda mantenerlo compacto con una barra de desplazamiento y configurando el número de líneas para mostrar.
Aquí está el resultado con mis sugerencias:
Clear Log();
// Time filtering //
defuplim = Today();
deflowlim = Today() - In Days( 150 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
//<<MODAL></MODAL>lb << Set Max Selected(1);
Para acceder a la información en los cuadros de visualización del usuario, solo necesita definir una función para el botón Aceptar que hace esto.Consulte el Índice de secuencias de comandos en el menú Ayuda.Si busca "cuadro de edición de números" y cambia el menú desplegable de "Todas las categorías" a "Cuadro de visualización", puede ver todos los mensajes que puede enviar a un cuadro de edición de números.Uno de ellos es "Obtener".Hay un mensaje similar para cada cuadro de visualización con entrada de usuario.
Su función para el botón Aceptar podría verse así:
Ok_btn << Set Script(On OK());
On OK = Function({},
start_date = str1 << Get;
end_date = str2 << Get;
Print(start_date, end_date);
);