Estoy desarrollando una interfaz gráfica de usuario (GUI) que permite a los usuarios seleccionar una o más opciones mediante casillas de verificación. Para cada opción seleccionada, la GUI debe realizar las siguientes acciones de manera secuencial:
- Seleccionar archivo: abre un cuadro de diálogo de selección de archivos para permitir al usuario seleccionar un archivo específico relacionado con la opción elegida.
- Formatear y guardar: procesa el archivo seleccionado utilizando una función predefinida que formatea los datos y guarda los cambios.
Buena ayuda:
Necesito ayuda para manejar escenarios en los que se seleccionan varias casillas de verificación simultáneamente, garantizando que cada opción seleccionada active independientemente sus funciones asociadas sin conflictos.
No estoy seguro de cómo configurar los detectores de eventos para cada casilla de verificación para activar las funciones correspondientes cuando se seleccionan.
Resultado
- Los usuarios pueden seleccionar una o más opciones mediante casillas de verificación.
- Al seleccionar cada casilla marcada:
- Aparece un cuadro de diálogo de selección de archivos para que el usuario seleccione el archivo relevante.
- El archivo seleccionado es procesado por la función de formato.
- Los datos formateados se guardan adecuadamente.
- La GUI sigue respondiendo y proporciona retroalimentación durante y después de las operaciones.
He adjuntado el código hasta ahora con comentarios donde necesito ayuda... además, si hay una solución más elegante para la interfaz gráfica de usuario, por favor compártala.
Gracias
Names Default To Here( 1 );
directory_to_collect_data_table = "/C:/Users/";
data_list = {"datatable_1 ", "datatable_2", "datatable_3"};
userInput_dt = Function( {},
dt = Pick File(
"3. Pick Up Data Table_Total#1",
directory_to_collect_data_table,
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
Return( dt );
);
datatable_1func = Function( {dt},
dt << New Column( "label",
Character, // The new column will store character values
Formula(
"D" || Substitute( :Extracted_Data, "A", "" ) // Prepend "D" and remove "A"
)
);
dt << Column( "Extracted_Data" ) << Hide( 1 );
dt:ROW1 << Data Type( Character );
final_data1 = Data Table( "final_data" );
);
// GUI for selecting and merging files
Userinput_1 = New Window(
Panel Box( "Select the datatable",
Check Box( data_list ),
Button Box( "Select Files", Userinput_1//add functionality
//add functionality if datatable_1 is selected then call function datatable_1func ( datatable_1 );
//whichever check box is selected accordingly a function is called
)
)
)
);Puede utilizar << get selected para obtener los elementos seleccionados (o << get selected indices si solo desea los índices y no los valores). Luego, recorra la lista de selección y realice las acciones
Names Default To Here(1);
nw = New Window("Example",
cb = Check Box(
{"One", "Two", "Three"}
),
Button Box("Go",
For Each({sel}, cb << get selected,
Match(sel,
"One", Show("FIRST"),
"Two", Show("SECOND"),
"Three", Show("THIRD")
);
);
);
);
Construya cajas de exhibición para nuevas ventanas (jmp.com)
Puede asociar una función a la casilla de verificación. Se invoca siempre que el usuario interactúa con la casilla de verificación. Consulte Ayuda > Índice de secuencias de comandos:
