Cuadro de diálogo dinámico para seleccionar diferentes observacionestengo los siguientes datos Quiero crear un cuadro de diálogo que muestre diferentes tipos de juegos disponibles en la columna del juego y le dará la opción al usuario de seleccionar el tipo de cada juego. Una vez que el usuario haya seleccionado el tipo para cada juego y haga clic en Aceptar, debería actualizar la tabla original con una nueva columna agregada con el tipo de juego para cada juego. Además, si es posible que el juego que el usuario haya seleccionado para un tipo de juego en particular, ese juego debe ocultarse de la lista de juegos en el cuadro de diálogo, para evitar la duplicación.
A continuación se muestra mi tabla original y final. El cuadro de diálogo interactivo debe verse como en la imagen adjunta donde el usuario puede arrastrar y soltar las opciones de juego disponibles para el tipo de juego respectivo. El botón Ok solo debe activarse una vez que se seleccionan todos los juegos.
Por favor, ayúdame a crear un script .jsl para el mismo.
Tabla original:
| Nombre | Juego |
| A | Fútbol americano |
| A | ajedrez |
| A | Bádminton |
| B | Fútbol americano |
| C | Ajedrez |
| B | Tenis de mesa |
| D | Nada |
Mesa final:
| Nombre | Juego | Tipo de juego |
| A | Fútbol americano | exterior |
| A | Ajedrez | interior |
| A | Bádminton | interior |
| B | Fútbol americano | exterior |
| C | Ajedrez | interior |
| B | Tenis de mesa | interior |
| D | nada | No aplica |
Gracias 

Re: Cuadro de diálogo dinámico para seleccionar diferentes observacionesgracias @gzmorgan0
Aprecio tu ayuda.
Estoy usando JMP 14.Re: Cuadro de diálogo dinámico para seleccionar diferentes observaciones@Rajat ,
Se adjunta un script modificado. Elementos a tener en cuenta:
- Utiliza un cuadro combinado para la lista de opciones de categoría, establecido por una lista interna del script.
- Las asignaciones se realizan mediante selecciones de la lista de origen, la categoría actual en el ComboBox y presionando el botón Asignar
- La tarea aparece como Nombre del juego > Categoría
- Se agregó un botón Actualizar para que la tabla se pueda actualizar de forma incremental
- La lista de origen se crea solo para juegos a los que no se les ha asignado un tipo de juego.
- Las acciones para eliminar y escribir en la tabla tuvieron que cambiarse. Ahora los elementos en lb1, el ListBox de asignaciones, tienen 2 piezas de información en una sola cadena. La función Word(n,string,delimiter) se utiliza para extraer la información pertinente.
La captura de pantalla muestra que se ha realizado una asignación. Para esta vista, si el usuario presiona asignar, Badminton y Football se asignarán como Outdoor.
Esta interfaz reduce el número de variables para los cuadros de visualización.Crear una interfaz útil requiere comprender la aplicación, las necesidades y el uso, conocer algunos conceptos básicos o encontrar un código de ejemplo que se acerque a lo que desea y comprenderlo. Tenga en cuenta que hay muchas alternativas a este script.¡Buena suerte!

JSL para el diseño de diálogo. Se adjunta guion completo.
//--Dialog
usr = New Window("Using List Boxes", <<MODAL></MODAL>Re: Cuadro de diálogo dinámico para seleccionar diferentes observaciones@Rajat ,
No mencionó qué versión de JMP está utilizando.Si JMP 14, desde el menú principal de JMP, seleccione Ayuda > Libros > Guía de secuencias de comandos de JMP . Esta es la versión PDF de un libro de tapa dura. Capítulo 11, a partir de la página 517, comienza la sección "Construir ventanas personalizadas".Esta es una muy buena fuente para aprender.
También Ayuda > Índice de secuencias de comandos > En el botón gris superior, presione y seleccione Cajas de presentación .Desde el lado izquierdo, seleccione un constructor de cuadro de visualización y, a la derecha, vea la sintaxis, luego hay 1 o más scripts de ejemplo simples que puede ejecutar, o copiar y pegar y crear su propio script, para aprender cómo funciona cada constructor.Te sugiero que busques: BotónCuadro , ListBoxBox que son constructores. PanelBox , AlinearCuadro , Cuadro de lista (HListBox, VListBox) son contenedores que se utilizan para organizar el diseño del diálogo.
Para aprender realmente a componer guiones, realmente necesita conocer las herramientas y este viaje de aprendizaje puede llevar tiempo.Sin embargo, muchos programadores aprenden tomando scripts existentes, leyéndolos, ejecutándolos, modificándolos para satisfacer sus necesidades,
Como dijiste que esto requeriría muchas variables, asumo que necesitas más de 3 categorías (Interior, Exterior, Nada). Como dije en mi última publicación, hay muchas formas de hacerlo y utilicé el código de copiar y pegar.Si tiene muchas categorías, modificaría mi script con el ejemplo provisto por @pmroz . Habría usado un ComboBox para seleccionar de una lista de categorías, y solo un cuadro de botón (Asignar) y solo un cuadro de asignación.Si tengo tiempo, modificaré mi script y lo adjuntaré.
JMP en secuencias de comandos JMP, 2 y Compañero de JSL, aplicaciones del lenguaje de secuencias de comandos JMP, 2.ª edición hay otros dos libros que pueden resultarle útiles para aprender JSL.
Re: Cuadro de diálogo dinámico para seleccionar diferentes observacionesGracias @gzmorgan0
Estoy buscando esta solución solamente.
Estoy tratando de entender el código. Parece que tenemos que crear tantas variables. ¿Puede sugerirme alguna buena serie de tutoriales en video (preferiblemente) o cualquier libro al que pueda referirme para aprender a crear cuadros de diálogo interactivos usando jsl? Estoy al principio de crear estos cuadros de diálogo.
Gracias 
Re: Cuadro de diálogo dinámico para seleccionar diferentes observaciones@Rajat ,
La mayoría de JMP Scripting Language, JSL, objetos y funciones para crear columnas de tabla de destino de cuadros de diálogo personalizados. Considere que las ventanas de diálogo integradas de JMP solicitan columnas. Hay objetos que se pueden usar para la selección personalizada, pero estos objetos de "valores" generalmente requieren más programación.Por ejemplo, un objeto ColListBox tiene una interfaz integrada de arrastrar y soltar: el nombre de una columna se puede arrastrar a otro ColListBox y los nombres de las columnas serán únicos.
JSL proporciona objetos ListBox(), sin embargo, ahora es el trabajo de los scripters garantizar la exclusividad. Por ejemplo, dependiendo de cómo codifique la tarea, debe administrar que Fútbol tenga una sola clasificación y que el nombre se use una vez.
Un método es no usar un cuadro de diálogo, sino crear un resumen de tabla de juegos únicos y el tipo de juego, hacer que el usuario actualice esta tabla abreviada y luego actualice la tabla de origen. Este método es similar a las interfaces de actualización de bases de datos más antiguas.
He adjuntado un script muy simple y no tan elegante (código de fuerza bruta repetido) para completar la tarea descrita.Lo mantuve simple ya que no has leído el libro.La interfaz del script incluye un botón de eliminación, en caso de que un juego se seleccione accidentalmente para un tipo incorrecto.En lugar de crear una función de unión, para que la lista de juegos no tenga duplicados, y funciones para garantizar que un juego no se clasifique como interior y exterior, construí el código para eliminar el juego de la lista fuente una vez que se ha seleccionado una categoría.
Debería leer acerca de la matriz asociativa, una lista con clave, ListBox, ButtonBox y Set Function().
A continuación se muestra una captura de pantalla del diálogo y la parte del diálogo del script. Se adjunta el guión completo.Tenga en cuenta que esto podría hacerse con un DataFilterBox, pero ListBox() es más fácil de usar. Por cierto, esto se probó en JMP13 y 14.

//--Dialog
usr = New Window("Using List Boxes", <<MODAL></MODAL>Re: Cuadro de diálogo dinámico para seleccionar diferentes observacionesHola @pmroz
Gracias por responder.
En mi conjunto de datos real tengo 1000 juegos con 25 juegos únicos y también tengo solo tres categorías 1. Interior 2. Exterior 3. No aplicable. Con este enfoque tengo que seleccionar el tipo de juego para cada 1000 juegos. También probé con un juego único pero no funcionó.
¿Podemos tener una ventana que solo muestre valores únicos de los juegos? Además, debe permitir la selección múltiple de juegos y luego seleccionar el tipo de juego para todas las selecciones múltiples de juegos porque la selección del tipo de juego para cada valor único del juego es tediosa si aumenta el número de juegos únicos.Re: Cuadro de diálogo dinámico para seleccionar diferentes observacionesAquí hay una solución que usa un cuadro de tabla con un cuadro de columna.Ajuste para sus tipos de juego.
dt = New Table( "Games", Add Rows( 7 ),
New Column( "Name", Character, "Nominal",
Set Values( {"A", "A", "A", "B", "C", "B", "D"} ) ),
New Column( "Game", Character( 16 ), "Nominal", Set Values(
{"Football", "chess", "Badminton", "Football", "Chess", "Table Tennis", "Nothing"} ) ),
new column("Game Type", Character, "Nominal")
);
game_list = dt:game << get values;
ngames = nitems(game_list);
selected_type = {};
type_list = {"No choice made", "Outdoor", "Indoor", "Nothing"};
game_type_cb = {};
game_type_colb = col box("Game Type");
for (i = 1, i <= ngames, i++,
selected_type[i] = "No choice made";
game_type_cb[i] = combo box(type_list);
game_type_colb << append(game_type_cb[i]);
);
nw = new window("Game Type Setting",
panel box("Select game type for each game",
tb = table box(
string col box("Game", game_list),
game_type_colb
),
),
panel box("Actions",
hlistbox(
okb = button box("OK",
for (i = 1, i <= ngames, i++,
selected_type[i] = game_type_cb[i] << get selected();
dt:game type[i] = selected_type[i];
);
show(selected_type);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
)
)
);