Пользовательский интерфейс для сортировки таблицы по нескольким столбцам - PullRequest
8 голосов
/ 09 марта 2009

Мне нужен пользовательский интерфейс, который позволяет пользователям сортировать таблицу по нескольким столбцам (например, сортировать по цвету, а затем по цене в цвете или, альтернативно, по цене и затем по цвету в цене). Единственный такой интерфейс, с которым я знаком, - это диалоговое окно, которое можно найти в Excel в разделе data> sort, но это довольно неуклюже и не позволяет быстро переключаться между представлениями. Я бы предпочел интерфейс в стиле iTunes, который позволяет быстро сортировать, нажимая на заголовки столбцов. Однако такие интерфейсы обычно позволяют сортировать только по одному столбцу (исключение составляет сам iTunes, который имеет очень ограниченную, явно жестко закодированную возможность сортировки по «Альбомам по исполнителям» и «Альбомам по годам», нажав на заголовок альбома).

Я могу представить интерфейс, в котором заголовок каждого столбца имеет несколько чисел, например, нажатие на 1 делает столбец первичным ключом сортировки, нажатие на 2 вторичным ключом и так далее. В качестве альтернативы, щелчок (или щелчок правой кнопкой мыши) по заголовку столбца может вызвать раскрывающееся меню с «первичной сортировкой», «вторичной сортировкой» и т. Д. Однако я никогда не видел такого реализованного интерфейса и не имею хорошая интуиция вопросов юзабилити, которые могут возникнуть.

Существуют ли приложения, которые позволяют сортировать по нескольким столбцам, используя заголовки столбцов? Вы могли бы указать мне на это? Есть ли полезные результаты юзабилити в отношении таких интерфейсов - какие работают лучше, а какие нет?

Кроме того, хотя меня больше всего интересует спецификация интерфейса, любые советы, которые можно передать людям, реализующим его, будут приветствоваться, например. общедоступные библиотеки, которые предоставляют части решения (особенно Java).

Редактировать: два человека предложили использовать диалоговое окно в стиле Excel. Это не сработает. Для моего приложения пользователи должны найти «лучшее соответствие» среди существующих записей таблицы (что часто не является идеальным соответствием). Таблица слишком велика, чтобы держать ее в голове, поэтому вам нужно продолжать сканировать соответствующие части, и полезно многократно сортировать таблицу, чтобы получить несколько представлений. Необходимость проходить через диалоговое окно с несколькими вариантами для каждого изменения представления слишком медленная; к тому времени, как вы закончили работу с окном, вы забыли результаты предыдущего просмотра.

Ответы [ 7 ]

5 голосов
/ 09 марта 2009

Я видел интерфейс shift-click, который упоминался в нескольких приложениях, но сейчас я не могу назвать ни одного. Вот хороший веб-пример.

4 голосов
/ 09 марта 2009

Я думаю, что Outlook поддерживает сортировку по нескольким столбцам. После того, как вы щелкнули заголовок столбца, вы должны щелкнуть по дополнительным заголовкам столбца. Я больше не использую Outlook, поэтому не могу это проверить. Надеюсь, это станет отправной точкой для вас.

2 голосов
/ 02 сентября 2009

Делайте это так, как это делает Excel, или, точнее, так, как настоящие люди используют Excel, что почти никогда не включает в себя это неуклюжее диалоговое окно, которого вы по праву хотите избежать. По сути, Excel сохраняет ваш текущий порядок сортировки настолько, насколько это возможно - поэтому, если в настоящее время он сортируется в порядке убывания по цене, а теперь вы сортируете по цвету (используя кнопку A-to-Z на панели инструментов, а НЕ диалоговое окно ), цены внутри цвета останутся в порядке убывания.

Этот подход требует некоторого переосмысления от пользователя, потому что вы сортируете сначала по наименее важному столбцу, но он становится очень интуитивным, как только вы его получите. (Да, я знаю, это звучит противоречиво, но я не знаю, как еще это описать.)

Чтобы реализовать это, вам нужно где-то хранить историю сортировки пользователя; но что касается интерфейса, все, что вам нужно, это стрелка вверх и стрелка вниз в каждом столбце. Или, если вы хотите разрешить только сортировку от А до Я, просто превратите сами заголовки столбцов в ссылки, кнопки или что-то в этом роде.

2 голосов
/ 09 марта 2009

Я бы предложил использовать подход Ctrl-Click (или Shift-click или любой другой щелчок), чтобы позволить пользователю выбрать несколько столбцов. Нажатие без Ctrl будет просто сортировать по выбранному столбцу, но удерживая клавишу Ctrl добавляет столбец в сортировщик. Повторное нажатие меняет направление. И дать отзыв о текущем сортировщике (ях) , аналогичном представленному на этих фотографиях . В большинстве случаев пользователи будут использовать сортировщик только по одному столбцу, только опытные пользователи захотят сортировать по нескольким столбцам. Но вы должны как-то документировать поведение в руководстве и в статье «знаете ли вы».

Но поскольку пользователи не читают , существует риск, что никто не найдет эту функцию. Но для этого, возможно, у вас может быть такая возможность, как Windows, когда вы впервые захотите нажать кнопку «Пуск» один раз, чтобы убедиться, что вы нашли кнопку. Когда вы увидите, что пользователь вообще не использует сортировщик, покажите ему, что щелчок по заголовку столбца приведет к сортировке. Позже, когда вы увидите, что он не использует функцию мультисортировки, покажите ему, что эта функция существует.

1 голос
/ 10 марта 2009

Как насчет следующего? Единый выпадающий список с надписью «Сортировка» в верхней части таблицы. В раскрывающемся списке перечислены все поля для сортировки. Каждое поле появляется дважды, один раз для возрастания и один раз для сортировки по убыванию. Рядом с выпадающим меню находится кнопка с надписью «Еще» или, возможно, просто «+». Пользователь выбирает поле для первичного ключа сортировки из выпадающего списка. Сортировка выполняется мгновенно (без кнопки «Сортировка»). Если требуется дополнительный ключ сортировки, пользователь нажимает кнопку «Дополнительно», и другой раскрывающийся список вставляется и открывается для выбора пользователем второго ключа. Дополнительные клавиши более низкого порядка могут быть добавлены последовательными нажатиями кнопки «Дополнительно». В каждом раскрывающемся списке есть пункт «Очистить» для удаления ключа.

Это делает компактный, простой и незагроможденный пользовательский интерфейс для простейшего и наиболее распространенного случая одного ключа сортировки (в отличие от диалога сортировки Excel или наличия номеров в заголовках столбцов), а также поддерживает сортировку неопределенного количества ключей ( опять же, в отличие от сортировки в Excel). Пользователь может сразу увидеть порядок сортировки (в отличие от Excel и легче, чем с числами в столбцах). Это избегает clunkinest диалогового окна.

Кликабельные заголовки столбцов являются стандартом де-факто, который также является хорошей идеей для включения вместе с вышеупомянутым. Рекомендуется делать то, что делают Outlook и Windows Explorer, и создавать ключи низкого порядка из прежних порядков сортировки. Так, например, если таблица сортируется по дате, а пользователь сортирует по категории, то таблица сортируется сначала по категории, а затем по дате. Таким образом, пользователь может выполнять многоуровневую сортировку, сначала выбрав поле сортировки по наименьшему порядку и обработав его. Тем не менее, он имеет плохую возможность обнаружения, и пользователь может обнаружить, что работа «назад» нелогична, поэтому он должен быть дополнен чем-то вроде выпадающего меню и кнопки «Еще». Опираясь на нажатие клавиши Shift или Ctrl, также возникают проблемы с обнаружением.

1 голос
/ 09 марта 2009

Серьезно, что вы хотите, Excel делает. Почему бы не использовать интерфейс, люди уже знают, как водить машину. Я бы предложил это. Или же вам придется либо покупать у третьей стороны, либо бросать свою собственную.

Разработка с Office облегчается VSTO (инструменты Visual Studio .NET для Office). Это зависит от вас, насколько вы хотите автоматизировать Excel в течение дюйма его жизни :). Это можно сделать.

На самом деле это то, что я должен был сделать. Мне пришлось читать электронные таблицы, извлекать данные, преобразовывать в объекты, а затем сохранять в Access (не спрашивайте). Каждый лист представляет одну запись, и каждый каталог представляет местоположение, вы получите идею. Все сделано с использованием сборок Office PIA Interop.

Просто мысль.

1 голос
/ 09 марта 2009

Вы смотрели на Excel? Это прекрасный пример того, как сортировать по нескольким столбцам.

Кроме того, я иногда использую подробный просмотр списка и позволяю пользователю удерживать клавишу Ctrl при выборе одного или нескольких столбцов для сортировки информации. (Если дважды щелкнуть столбец, выполняется сортировка по убыванию.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...