Pregunta de UI: ¿hay algún consenso sobre cuál es la mejor (definida como "la que los usuarios finales prefieren") o la manera menos mala de implementar la entrada de datos en una cuadrícula?Ingresar datos en una cuadrícula
Tengo una grilla, con muchas filas. Las columnas de la cuadrícula contienen varios tipos de propiedades, que el usuario puede ingresar/editar. Los "tipos" de propiedades incluyen:
- Texto libre
- números (dígitos numéricos)
- valor de enumeración (por ejemplo, uno de 'Alto', 'Medio' y 'Bajo')
- Otros (por ejemplo, fecha, duración)
El tipo de "texto libre" no es difícil de diseñar (así que no preguntaré sobre eso), pero ¿qué ocurre con los siguientes dos tipos?
dígitos numéricos
- Cuando se utiliza un teclado para introducir un número, que se permita la entrada de texto libre, y luego ejecutar un método de validación de la falta de definición? ¿O puede controlar cada pulsación de tecla para restringir la entrada de datos a dígitos solamente?
- ¿Cómo le dice al usuario (en una grilla, no en un formulario) que la sintaxis de los datos en alguna columna está restringida a solo numérica? ¿Qué haces si el usuario presiona una tecla incorrecta (no numérica)?
- Un control 'spin' o 'spinner' es un control estándar de Windows; ¿es apropiado intentar usar uno en una grilla basada en HTML también?
Enum valora
Para introducir o editar un valor de enumeración utilizando el ratón, supongo que al quitar un poco de menú contextual de un clic del ratón es lo que hay que hacer.
- Una alternativa es usar el control de entrada
<select>
(es decir, un cuadro combinado). Aunque creo que tener una columna llena de cuadros combinados no es tan fácil de leer como tener una columna de valor de texto (porque los cuadros combinados agregan tinta adicional que no es de texto)? ¿Qué piensas que normalmente muestra texto sin formato, pero reemplaza ese texto con un cuadro combinado cuando el campo recibe el foco de entrada (y luego elimina el cuadro combinado en desenfoque)? - ¿También podría mostrar ese mismo menú en el enfoque, cuando el enfoque cambia como resultado del teclado (es decir, la tecla [Tab]) en lugar de un resultado del mouse (es decir, un clic)? En otras palabras, ¿debería tabular a un resultado de campo en un menú emergente? A propósito, los menús emergentes basados en CSS que he visto responden al mouse pero no al teclado (por ejemplo, a las teclas de flecha [Arriba] y [Abajo]). ¿Conoces alguna implementación de entrada de datos tipo Intellisense que pueda ejecutarse en un navegador?
Por ejemplo?
También me gustaría ver algo que crea que es un ejemplo ejemplar. Estoy interesado en la interfaz de usuario del escritorio y/o en las respuestas del navegador.
Editar: tras otra pregunta con la etiqueta [de entrada de datos] ("Has anyone used Sigma Grid (Javascript-based editable data grid)?"), estoy mirando el ejemplo Sigma cuadrícula.Hace muchas cosas bien IMO (buen soporte para el teclado y cuadros de selección just-in-time); pero su soporte para campos numéricos puede ser imperfecto, por ejemplo, si presiono 'a' en una celda numérica, a veces aparece un cuadro de alerta para decirme que estoy equivocado (donde tal vez una información sobre herramientas sería menos intrusiva), y/o a veces deja la celda vacía (en blanco), borrando la 'a' y no dejando nada en su lugar.
Editar en respuesta a una de las siguientes respuestas.
De nuevo, sin embargo, determine QUÉ uso principal va a ser su formulario, y optimícelo para eso. La visualización o el análisis de los datos tiene diferentes necesidades que la entrada masiva, y satisfacer a los usuarios del teclado es completamente diferente que los usuarios de teclado + mouse.
Quiero que la misma pantalla (es decir, una tabla/cuadrícula) funcione bien para mostrar propiedades existentes, crear nuevas propiedades y editar propiedades existentes. Espero docenas de elementos (es decir, docenas de filas de datos), cada uno con solo algunas columnas (por ejemplo, una columna de texto/descripción del artículo, más 1 o más columnas para 1 o más propiedades de elementos asociados).
Algunos de los datos/propiedades pueden ser subjetivos y relativos (por ejemplo, dos propiedades para cada elemento son la 'prioridad' o 'dificultad' de cada elemento, que es especialmente significativa solo en comparación con otros elementos), que es por lo que quiero mostrar todos los datos en una sola pantalla: para que el usuario final pueda compararlos.
Mi aplicación es para usuarios de computadoras relativamente expertos (no principiantes), pero no especialistas en el ingreso de datos: p. los usuarios son desarrolladores de software, gerentes de proyectos, gerentes de productos, personal de control de calidad, etc., pero también hasta cierto punto sus clientes; se está ejecutando en una intranet (no en internet pública), sin embargo, fácil de usar y fácil de entender es muy importante.
Además, no veo por qué satisfacer a los usuarios del teclado es completamente diferente que los usuarios de teclado + mouse: pensé que una sola solución podría/debería soportar una y/o ambas.
Edité mi OP para agregar información adicional al final, para responder a su pregunta, sobre la aplicación, los datos y los usuarios. – ChrisW
Lo bueno de una ruleta supongo que es compatible con ingresar o editar un número con el mouse (para usuarios de mouse); y, es un anuncio implícito que la sintaxis del campo es numérica. – ChrisW
"es mejor que muestre el error en línea e inmediatamente" ¿Permite la entrada y muestra un error; o prevenir la entrada y mostrar un error? ¿A qué te refieres con mostrarlo "en línea" cuando se trata de una cuadrícula (una celda, en algún lugar dentro de una mesa)? – ChrisW