3

Наше приложение отображает массу полезной информации для наших пользователей в таблице. У нас есть способность фильтрации, основанная на логических/логических поисках. Даже после тренировки пользователи по-прежнему не понимают, как использовать фильтры, потому что AND OR>> = и т. Д. Являются чужими для них. Этот фильтр прост для программистов, поскольку он легко переводится в код. Любые примеры того, как это можно сделать более удобным и менее подверженным ошибкам?Как создать удобный фильтр

ответ

1

В веб-приложениях telerik имеет good idea with their grid, вы также сможете это сделать в настольных приложениях.

+0

Я думаю, что это поможет. С выпадающими операторами (например, =,> =, <). Если текстовое поле пуст, не фильтруйте их. Я собираюсь разработать прототип и попробовать его. – 2009-11-12 19:06:51

+0

Мы добавили флажок «Многопользовательский поиск», который при проверке делает фильтр поиска, и поэтому в сущности COL1 AND COL2 AND ... это работает для большинства сценариев – 2010-01-03 13:27:29

2

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

Этот подход напоминает пользователей Google. Всем известно, как Google.

Если вам не нравится идея представления большого списка всех элементов на начальном этапе, вы можете показать пустые результаты панели первый, и отображать результаты после поиска набирается.

0

Я думаю, Джанго встроенную в интерфейсе администратора есть очень интуитивный интерфейс для фильтров.

Простой скриншот в docs, но есть намного больше, что вы можете сделать, особенно при фильтрации по датам.

Возможно, вам захочется более подробно ознакомиться с интерфейсом администратора Django, чтобы узнать, можете ли вы применить некоторые свои трюки к своему делу.

0

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

2

Преобразуйте операторы в обычный текст на английском языке и попросите их выбрать из него. Для например: К

Показать все книги, автором которых является [текстовое поле] и цена [меньше/больше][текстовое поле]

[меньше/больше] раскрывающийся список

[текстовое поле] это окно ввода

Полученный текст после того, как пользователь заполнил все поля должны приводить к простой простой английский язык

Например: Покажите мне все книги, автором которых является Стивен Кинг и цена менее $

Я использовал это в своем приложении, когда использовал для фрилансеров, и пользователям это нравилось. Используя некоторые изящные программы пользовательского интерфейса, вы можете предоставить параметры для расширения фильтра до n уровней.

1

вы можете предоставить некоторые предустановленные фильтры для наиболее распространенных запросов к этой таблице - если это возможно с приложением вы используете

вы можете обеспечить «рассчитывать вместо отображения» механизм таким образом, что пользователь видит, сколько строк он/она будет потенциально получить

вы можете предоставить им страницу вики с некоторыми примерами онлайн

вы можете дать им инструмент, QBE

надежду, что помогает хорошо luck MikeD

1

По моему опыту вы просто не хотите, чтобы конечные пользователи понимали разницу между условиями И и ИЛИ. Поэтому я строю свои фильтры, так что операция AND или ORing построен в В общем, моя логика выглядит следующим образом:.

  1. Критерии для различных полей вместе, чтобы операция AND ограничить результаты.

  2. Несколько значений для одного и того же поля эффективно объединены вместе, а затем ANDed в критерии для других полей. Обычно я регистрирую ввод в отдельном поле списков, разделенных запятыми (переводится в IN()), диапазонах разделенных тире (переведенных в BETWEEN), подстановочных значений (переводимых в LIKE) и любой комбинации (например, Customer ID: 1-10, 50, 52).

Я нахожу, что большинство пользователей интуитивно понимают эту систему.

Конечно, время от времени требуется другой интерфейс с некоторой степенью ORing, и в этих случаях у меня обычно есть раздел пользовательского интерфейса поиска в панели или группе с надписью «Любое из них истинно».

1

Я недавно работал над этой проблемой. Мое решение должно быть более наглядным, использовать слова вместо символов и изменять слова, где это позволяет более читаемый макет. Для иллюстрации, представьте себе выражение фильтра:

Breed == "Spaniel" AND (Age == 2 OR Colour == "White") 

Некоторые линейные строители Запрос может написать это:

( And/Or Field Operator Value 
[ ]  [Breed] [=]  [Spaniel] 
[1] [AND] [Age] [=]  [2] 
[1] [OR] [Colour] [=]  [White] 

Или иерархическая один может отображать это как:

AND 
    [Breed] [Is Equal To] [Spaniel] 
    OR 
     [Age] [Is Equal To] [Spaniel] 
     [Colour] [Is Equal To] [White] 

Оба из которых может быть читаемым разработчику, но не настолько читаемым для непрофессионала.

Мое решение больше похож:

Show ALL records where 
    [Breed] [Is Equal To] [Spaniel] 
    Show ANY records where 
     [Age] [Is Equal To] [Spaniel] 
     [Colour] [Is Equal To] [White] 

Так заимствование из иерархического подхода, но изменения И и ИЛИ к ALL или ANY. Это означает, что его можно читать сверху вниз немного легче.

0

Тереза ​​Нейл проиллюстрировал несколько подходов к построению сложных интерфейсов правил (предикатные предложения AKA) в сообщении iTunes Solves the Nested Clause Dillema. Здесь есть несколько хороших примеров.Мне очень нравится, как Apple делает это в iTunes (хотя я не использую iTunes).