Как спроектировать интерфейс для построения условных выражений? - PullRequest
8 голосов
/ 30 марта 2010

Мне нужно разработать пользовательский интерфейс для ввода чего-то вроде «если x или (y и z), то сделайте a, b и c». Данные для ввода сами по себе уже довольно сложны, как вы можете обернуть их в интуитивно понятный интерфейс?

Ответы [ 4 ]

2 голосов
/ 30 марта 2010

Вот пример того, как я решил проблему с ошибкой базы данных. Это было сделано десять лет назад на linux box, поэтому L & F довольно мотивирован, но он показывает общую концепцию:

альтернативный текст http://www1.clearlight.com/~oakley/dbquery.jpg

Это работает почти так же, как вы ожидаете. Вы можете изменить «ЛЮБОЕ из следующего» на «ВСЕ из следующего», а метки на последующих строках изменятся с «или» на «и». Кнопка «IS» может быть изменена на «IS NOT», а также на «Matches pattern» и некоторые другие варианты.

Вы нажимаете кнопки +/-, чтобы добавить дополнительные критерии. Вы можете создавать логические группы, которые позволяют вам делать такие выражения, как «a или (b и c)», но при этом они почти читаются как набор английских предложений.

В вашем случае вместо раздела «Заказ по» у вас может быть раздел «делать эти вещи».

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

Я бы определенно изменил бы это, если бы мне пришлось это делать заново, но базовая механика работает довольно хорошо.

1 голос
/ 16 декабря 2014

Вот мой ответ на похожий вопрос: Интуитивно понятный интерфейс для создания логической логики?

Я бы разбил ваш интерфейс на две части: условие и результат.

Вот пример условного интерфейса:

enter image description here

Несколько мыслей

  • Интерфейсначинается просто
  • Если это усложняется, это потому, что пользователь построил это шаг за шагом
  • Нет редактирования или перетаскивания - просто создание и удаление ветвей
  • Условияпростой раскрывающийся список в этом примере, но может быть более сложным или, возможно, отрицательным.В основном этот интерфейс позволяет вам составлять выражения.
  • Я думаю, что это хорошая идея, если это возможно, избегать такого типа интерфейса
0 голосов
/ 30 марта 2010

Это хорошая статья

http://www.lukew.com/ff/entry.asp?1007

Я использовал идеи, изложенные в этой статье, при создании формы для ввода ставки удержания пособия.Суть в том, что он рекомендует создать форму, похожую на Mad Libs (вспомните эти книги в детстве).

0 голосов
/ 30 марта 2010

Всегда ли это будет двоичная логика, подобная этой (просто «И», «И» и «Не»)? Если это так, вы можете иметь пользовательский интерфейс конструктор логической схемы , аналогичный тем, которые используются при разработке схемной логики.

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