2009-03-09 17 views
6

Ho bisogno di un'interfaccia utente che consenta agli utenti di ordinare una tabella in base a più colonne (ad esempio, ordinare per colore e quindi prezzo all'interno del colore o in alternativa prezzo e colore nel prezzo). L'unica interfaccia di questo tipo che conosco è la finestra di dialogo che si trova in Excel sotto data> sort, ma è piuttosto goffo e non si presta a passare rapidamente da una vista all'altra. Preferisco di gran lunga un'interfaccia in stile iTunes che consente l'ordinamento rapido facendo clic sulle intestazioni delle colonne. Tuttavia, tali interfacce in genere consentono solo l'ordinamento di una colonna (un'eccezione è iTunes stesso che ha una capacità molto limitata, apparentemente hardcoded, di ordinare per "Album per artista" e "Album per anno" facendo clic sull'intestazione dell'album).Interfaccia utente per l'ordinamento di una tabella per più colonne

Posso prevedere un'interfaccia in cui ogni intestazione di colonna ha alcuni numeri, in modo che facendo clic su 1 la colonna diventi la chiave di ordinamento principale, facendo clic su 2 sulla chiave secondaria e così via. In alternativa, fare clic (o fare clic con il tasto destro) sull'intestazione di una colonna può portare un menu a discesa con "ordinamento primario", "ordinamento secondario", ecc. Tuttavia, non ho mai visto una tale interfaccia implementata, e non ho una buona intuizione di problemi di usabilità che possono sorgere.

Esistono applicazioni che consentono l'ordinamento in base a più colonne utilizzando le intestazioni delle colonne? Saresti in grado di indicarmi questi? Ci sono risultati di usabilità utili riguardo a tali interfacce - che funzionano meglio, quali meno?

Inoltre, mentre sono principalmente interessato alle specifiche dell'interfaccia, qualsiasi suggerimento da trasmettere alle persone che lo implementano sarebbe apprezzato, ad es. librerie disponibili pubblicamente che forniscono parti di una soluzione (specialmente Java).

Modifica: due persone hanno suggerito di utilizzare una finestra di dialogo in stile Excel. Questo non funzionerà. Per la mia applicazione, gli utenti devono trovare la "corrispondenza migliore" tra le voci della tabella esistenti (che spesso non è una corrispondenza perfetta). La tabella è troppo grande per tenere a mente, quindi è necessario continuare a scansionare le parti pertinenti ed è utile ordinare ripetutamente la tabella per ottenere più viste. Dover passare attraverso una finestra di dialogo con più opzioni per ogni cambio di visualizzazione è troppo lento; quando hai finito con la scatola, hai dimenticato i risultati della vista precedente.

risposta

3

Penso che Outlook abbia supportato l'ordinamento in base a più colonne. Dopo aver fatto clic su un'intestazione di colonna, fai quindi clic con il tasto Maiusc + clic sulle intestazioni di colonna aggiuntive. Non uso più Outlook, quindi non posso verificarlo. Spero che sarà un punto di partenza per te.

+0

L'ordinamento funziona in questo modo in Outlook 2007. –

1

Hai dato un'occhiata a Excel? Questo è un esempio perfetto su come ordinare su più colonne.

Inoltre, a volte utilizzo un listview dettagliato e lascia che l'utente tenga premuto il tasto Ctrl mentre seleziona una o più colonne per ordinare le informazioni. (Fare clic due volte su una colonna esegue un ordinamento decrescente)

+0

Excel ha una finestra di dialogo, ed è troppo lento per le mie esigenze che richiedono un rapido passaggio da una vista all'altra. Excel ha anche un'interfaccia di selezione rapida (stile iTunes)? Dove lo trovo? – Ron

1

Seriamente, quello che vuoi, Excel lo fa. Perché non usare un'interfaccia le persone sanno già come guidare. Lo suggerirei. Oppure devi comprare da una terza parte o rotolare da solo.

Lo sviluppo con Office è facilitato da VSTO (Visual Studio .NET Tools per Office). Spetta a te quanto desideri automatizzare Excel entro un centimetro della sua vita :). Si può fare.

In effetti questo è quello che dovevo fare. Ho dovuto leggere fogli di calcolo, estrarre dati, convertirli in oggetti, quindi persistere in Access (non chiedere). Ogni foglio rappresenta un record e ogni directory rappresenta una posizione, si ottiene l'idea. Tutto fatto utilizzando gli assembly di interoperabilità PIA di Office.

Solo un pensiero.

+0

"Perché non utilizzare un'interfaccia le persone sanno già come guidare" - perché una finestra di dialogo è troppo lenta per le mie esigenze. – Ron

+0

@Ron: la finestra di dialogo di ordinamento è troppo lenta per te? – Chris

+0

Sì, è - vedi la modifica sulla domanda :-) – Ron

2

Suggerirei di utilizzare un approccio Ctrl-clic (o Maiusc-clic o qualsiasi clic) per consentire all'utente di selezionare più colonne. Cliccando senza Ctrl si ordinerà solo per la colonna selezionata, ma tenendo premuto il tasto Ctrl si aggiunge la colonna alla selezionatrice. Cliccando di nuovo cambia la direzione. E fornire un feedback sull'attuale selezionatore (s) similar as in these pictures. La maggior parte delle volte gli utenti useranno comunque la sorter a colonna singola, solo gli utenti avanzati vorranno ordinare per colonne multiple. Ma dovresti avere il comportamento documentato in qualche modo nel manuale e nel "lo sai".

Ma dal users don't read, c'è il rischio che nessuno possa trovare la funzione. Ma per questo forse potresti avere una funzionalità come Windows quando hai iniziato a voler fare clic sul pulsante di avvio una volta per assicurarti di aver trovato il pulsante. Quando vedi che l'utente non usa affatto il sorter, mostragli che facendo clic sull'intestazione della colonna si ordinerà. Più tardi, quando vedi che non sta usando la funzione di ordinamento multipla, mostralo una volta che la funzione esiste.

+0

Il problema che stavamo eseguendo era che la query db è stata eseguita dopo aver fatto clic su ogni colonna di ordinamento. Ogni query successiva selezionerebbe più colonne in base ai clic dell'utente. L'utilizzo di una chiave di modifica come suggerisci rimuove questo problema di ricerca duplicato. Se l'utente ha premuto il tasto modificatore, non apriamo una query finché non rilasciano la chiave. Ottima soluzione! Hai ragione quando gli utenti non leggono e talvolta mancano le funzionalità. Nel mio caso, questa funzione viene utilizzata così spesso da insegnare agli utenti come funziona, poiché è una cosa su cui si basano molto spesso. –

1

Che ne dici di quanto segue? Un singolo elenco di selezione etichettato "Ordina" nel margine superiore della tabella. Il menu a discesa elenca tutti i campi da ordinare. Ogni campo appare due volte, una volta per ascendere e una volta per i tipi decrescente. Accanto al menu a discesa è presente un pulsante con l'etichetta "Altro" o forse semplicemente "+". L'utente sceglie il campo per la chiave di ordinamento principale dal menu a discesa. L'ordinamento viene applicato immediatamente (nessun pulsante di comando "Ordina"). Se si desidera una chiave di ordinamento secondaria, l'utente fa clic sul pulsante Altro e viene inserito un altro elenco a discesa che consente all'utente di selezionare la seconda chiave. Ulteriori chiavi di ordine inferiore possono essere aggiunte con clic successivi del pulsante Altro. Gli elenchi a discesa includono ciascuno un elemento "Cancella" per eliminare una chiave.

Ciò rende l'interfaccia utente semplice, compatta e ordinata per il caso più semplice e più comune di una singola chiave di ordinamento (a differenza del Dialogo di ordinamento di Excel o con numeri alle intestazioni delle colonne), supportando anche l'ordinamento di un numero indefinito di chiavi (di nuovo a differenza del Dialog Sort di Excel). L'utente può vedere l'ordinamento a colpo d'occhio (a differenza di Excel e più facilmente che con i numeri nelle colonne). Evita il clunkinest di una finestra di dialogo.

Le intestazioni di colonna cliccabili sono uno standard de facto che è anche una buona idea includere insieme a quanto sopra. È buona norma fare ciò che Outlook e Windows Explorer fanno e rendere le chiavi degli ordini inferiori fuori dai precedenti ordinamenti. Ad esempio, se la tabella viene ordinata per data e l'utente ordina per categoria, la tabella viene ordinata prima per categoria e quindi per data. Un utente può quindi eseguire un ordinamento multiordinato selezionando prima il campo di ordinamento più basso e procedendo verso l'alto. Tuttavia, questo ha scarsa rilevabilità e l'utente può scoprire che lavorare "all'indietro" è contro-intuitivo, quindi dovrebbe essere integrato con qualcosa come i menu a discesa e il pulsante Altro. Affidarsi a shift-click o ctrl-click ha anche problemi di reperibilità.

1

Esegui il modo in cui Excel fa, o meglio il modo in cui le persone reali usano Excel, che non coinvolge quasi mai quella finestra di dialogo goffa che desideri giustamente evitare. Fondamentalmente, Excel conserva il tuo ordinamento corrente il più possibile, quindi se lo hai attualmente ordinato in ordine decrescente per prezzo, e ora lo ordinerai per colore (usando il pulsante dalla A alla Z sulla barra degli strumenti, NON la finestra di dialogo), i prezzi all'interno di un colore rimarranno in ordine decrescente.

Questo approccio richiede un po 'di inversione di pensiero da parte dell'utente, perché si ordina prima dalla colonna meno importante, ma è molto intuitivo una volta ottenuto. (Sì, lo so, sembra contraddittorio, ma non so come altro descriverlo.)

Per implementarlo, dovresti memorizzare la cronologia di ordinamento dell'utente da qualche parte; ma per quanto riguarda l'interfaccia, tutto ciò che serve è una freccia su e una freccia giù in ogni colonna.Oppure, se si desidera solo consentire l'ordinamento A-Z, è sufficiente trasformare i titoli delle colonne in link o pulsanti o altro.

Problemi correlati