2009-03-09 15 views
6

Necesito una interfaz de usuario que permita a los usuarios clasificar una tabla según múltiples columnas (por ejemplo, ordenar por color y luego precio por color o precio y luego color por precio). La única interfaz de este tipo con la que estoy familiarizado es el cuadro de diálogo que se encuentra en Excel en data> sort, pero es un poco torpe y no cede al cambio rápido entre vistas. Preferiría una interfaz estilo iTunes que permita una clasificación rápida haciendo clic en los encabezados de las columnas. Sin embargo, tales interfaces típicamente solo permiten ordenarlas por una columna (una excepción es iTunes, que tiene una capacidad muy limitada y aparentemente codificada para ordenar por "Álbum por artista" y "Álbum por año" haciendo clic en el encabezado Álbum).Interfaz de usuario para ordenar una tabla por varias columnas

Puedo imaginar una interfaz donde cada encabezado de columna tiene algunos números, de modo que al hacer clic en 1, la columna se convierte en la clave de clasificación principal, al hacer clic en 2 la clave secundaria, y así sucesivamente. Alternativamente, al hacer clic (o hacer clic con el botón derecho) en el encabezado de una columna podría aparecer un menú desplegable con "clasificación primaria", "clasificación secundaria", etc. Sin embargo, nunca había visto una interfaz así implementada, y no tengo una buena intuición de los problemas de usabilidad que puedan surgir.

¿Hay aplicaciones que permitan clasificar por columnas múltiples utilizando los encabezados de columna? ¿Podrías indicarme esto? ¿Hay algún resultado de usabilidad útil con respecto a tales interfaces, que funcionan mejor, y menos?

Además, si bien estoy interesado principalmente en la especificación de la interfaz, cualquier sugerencia que se transmita a las personas que la implementan será apreciada, p. bibliotecas públicamente disponibles que proporcionan partes de una solución (especialmente Java).

Editar: Dos personas han sugerido utilizar un cuadro de diálogo al estilo de Excel. Esto no va a funcionar. Para mi aplicación, los usuarios necesitan encontrar la "mejor coincidencia" entre las entradas de la tabla existente (que a menudo no es una combinación perfecta). La tabla es demasiado grande para guardarla en la cabeza, por lo que debe seguir escaneando las partes relevantes, y es útil ordenar la tabla repetidamente para obtener vistas múltiples. Tener que pasar por un cuadro de diálogo con múltiples opciones para cada cambio de vista es demasiado lento; cuando hayas terminado con la caja, has olvidado los resultados de la vista anterior.

Respuesta

3

Creo que Outlook admite la ordenación por varias columnas. Después de hacer clic en un encabezado de columna, debe hacer clic y hacer clic en los encabezados de columna adicionales. Ya no uso Outlook, así que no puedo verificar esto. Espero que sea un punto de partida para ti.

+0

Ordenar funciona de esta manera en Outlook 2007. –

1

¿Has echado un vistazo a Excel? Ese es un ejemplo perfecto de cómo ordenar en varias columnas.

Además, utilizo una vista de lista detallada a veces, y dejo que el usuario mantenga presionada la tecla Ctrl mientras selecciono una o más columnas para ordenar la información. (Hacer clic dos veces en una columna hace una ordenación descendente.)

+0

Excel tiene un cuadro de diálogo, y eso es demasiado lento para mis necesidades que requieren un cambio rápido entre las vistas. ¿Excel también tiene una interfaz de clasificación de clic rápido (estilo de iTunes)? ¿Donde lo encuentro? – Ron

1

En serio, lo que quiere, Excel lo hace. ¿Por qué no utilizar una interfaz que las personas ya saben cómo conducir? Yo sugeriría eso. De lo contrario, tendrá que comprarle a un tercero o hacerlo suyo.

El desarrollo con Office es facilitado por VSTO (herramientas de Visual Studio .NET para Office). Depende de usted cuánto desea automatizar Excel dentro de una pulgada de su vida :). Se puede hacer.

De hecho, eso es lo que tenía que hacer. Tuve que leer hojas de cálculo, extraer datos, convertir a objetos y luego acceder a Access (no preguntar). Cada hoja representa un registro, y cada directorio representa una ubicación, usted obtiene la idea. Todo hecho usando los ensamblajes Office PIA Interop.

Solo un pensamiento.

+0

"¿Por qué no utilizar una interfaz que las personas ya saben cómo manejar?", Porque un cuadro de diálogo es demasiado lento para mis necesidades. – Ron

+0

@Ron: ¿el diálogo de ordenación es demasiado lento para usted? – Chris

+0

Sí lo es - ver la edición de la pregunta :-) – Ron

2

Sugeriría usar un enfoque Ctrl-Click (o Shift-clic o lo que sea que haga clic) para permitir al usuario seleccionar múltiples columnas. Al hacer clic sin Ctrl solo se ordena por la columna seleccionada, pero manteniendo presionada la tecla Ctrl se agrega la columna al clasificador. Hacer clic nuevamente cambia la dirección. Y dar su opinión sobre el clasificador (es) actual (es) similar as in these pictures. La mayoría de las veces, los usuarios solo utilizarán el clasificador de una sola columna, solo los usuarios avanzados querrán ordenar por varias columnas. Pero debe tener el comportamiento documentado de alguna manera en el manual y en el asunto "¿sabía usted?"

Pero desde users don't read, existe el riesgo de que nadie encuentre la función. Pero para esto, tal vez podría tener una característica como Windows cuando comenzó, queriendo hacer clic en el botón de inicio una vez para asegurarse de encontrar el botón. Cuando vea que el usuario no está utilizando el clasificador, demuéstrele que al hacer clic en el encabezado de la columna se ordenará. Más tarde, cuando vea que no está usando la función de ordenación múltiple, muéstrele una vez que la característica existe.

+0

El problema con el que nos topamos fue que la consulta db se ejecutó después de que se hizo clic en cada columna de ordenación. Cada consulta posterior ordenaría más columnas según los clics del usuario. El uso de una tecla de modificación como la que sugiere elimina este problema de consulta duplicada. Si el usuario tiene presionada la tecla modificadora, no activamos una consulta hasta que suelte la tecla. ¡Gran solución! Tiene razón acerca de que los usuarios no leen y, a veces, de las funciones que faltan. En mi caso, esta función se utiliza con tanta frecuencia que enseñamos a los usuarios cómo funciona, ya que es algo de lo que dependen muy a menudo. –

1

¿Qué tal lo siguiente? Una sola lista desplegable etiquetada como "Ordenar" en el margen superior de la tabla. El menú desplegable enumera todos los campos para ordenar. Cada campo aparece dos veces, una para ascender y otra para descendentes. Al lado del menú desplegable hay un botón con la etiqueta "Más" o simplemente "+". El usuario elige el campo para la clave de clasificación primaria del menú desplegable. El orden se aplica instantáneamente (sin el botón de comando "Ordenar"). Si se desea una clave de clasificación secundaria, el usuario hace clic en el botón Más y se inserta y abre otra lista desplegable para que el usuario seleccione la segunda clave. Se pueden agregar claves adicionales de orden inferior con clics sucesivos del botón Más. Los menús desplegables incluyen un elemento "Borrar" para eliminar una clave.

Esto hace una interfaz de usuario compacta, simple y ordenada para el caso más simple y común de una sola clave de ordenación (a diferencia del cuadro de diálogo Ordenar de Excel o tener números en los encabezados de columna), mientras que también admite la clasificación de un número indefinido de claves (nuevamente a diferencia del cuadro de diálogo de clasificación de Excel). El usuario puede ver el orden de clasificación de un vistazo (a diferencia de Excel y más fácilmente que con números en las columnas). Evita la clunkinest de un cuadro de diálogo.

Cabeceras de columnas clicables es un estándar de facto que también es una buena idea para incluir junto con lo anterior. Es una buena práctica hacer lo que Outlook y Windows Explorer hacen y hacer que las claves de orden inferior salgan de los antiguos ordenamientos. Entonces, por ejemplo, si la tabla está ordenada por fecha y el usuario ordena por categoría, entonces la tabla se ordena primero por categoría y luego por fecha. Por lo tanto, un usuario puede hacer una ordenación multi-ordenada eligiendo primero el campo de ordenamiento de orden más bajo y trabajando. Sin embargo, esto tiene poca capacidad de descubrimiento y el usuario puede encontrar que trabajar "al revés" es contrario a la intuición, por lo que debe completarse con algo así como los botones desplegables y el botón Más. Confiar en hacer clic con la tecla Mayús o presionar Ctrl y hacer clic tiene problemas de detección.

1

Hazlo como lo hace Excel, o mejor dicho, la forma en que las personas usan Excel, que casi nunca incluye ese cuadro de diálogo torpe que deseas evitar. Básicamente, Excel conserva su orden de clasificación actual tanto como puede, por lo que si actualmente lo tiene ordenado en orden descendente por precio, y ahora lo ordena por color (utilizando el botón A-to-Z en la barra de herramientas, NO el cuadro de diálogo), los precios dentro de un color se mantendrán en orden descendente.

Este enfoque requiere un poco de pensamiento inverso por parte del usuario, porque se ordena primero por la columna menos importante, pero es muy intuitivo una vez que lo obtiene. (Sí, lo sé, eso suena contradictorio, pero no sé cómo describirlo.)

Para implementarlo, debe almacenar el historial de clasificación del usuario en algún lugar; pero en lo que respecta a la interfaz, todo lo que necesitaría es una flecha hacia arriba y una flecha hacia abajo en cada columna.O bien, si solo desea permitir la clasificación de A a Z, simplemente convierta los títulos de las columnas en enlaces o botones o lo que sea.

Cuestiones relacionadas