ユーザーが複数の基準を選択し、論理演算子AND、ORおよびNOTを使用してそれらを混在させることができるプロジェクトに取り組んでいます。現在、UIが複雑すぎるため、ユーザーに基準を混在させないことにしましたしかし、将来的には彼らにもっと自由を与えたいと思っています。
この問題はすでに発生していますか?どのように解決しましたか?例がありますか?
私の考えでは、あるブロックが基準を提供し、別のブロックがユーザーがボックスを管理できるようにするかもしれません。ユーザーは、さまざまなボックスに複数の基準をドラッグアンドドロップして、それらに論理演算子を適用できます。
これについてあなたはどう思いますか?
財務、会計、リスク管理の人々は、常にこのようなインターフェースを使用しています。時間範囲XでカテゴリA、B、Cが欲しいが、Bがない1 とC 2。
あなたがそのようなユーザーのためのアプリを作っているなら、それはまったく問題ではないと思います。いつものように、ユーザーが自分のタスクをどのように完了し、何を達成しようとしているのかを理解していることを確認してください(BAの言葉をそれに取ってはいけません)。それをどのように改善できるかを考えてください。ユーザーにさまざまなオプションを提示し、テスト、テスト、テストします。
これらのユーザーはエキスパートユーザーであり、できるだけ早くデータを取得したいと考えています。
あなたの説明は、Thunderbirdメールクライアントの高度な検索機能を思い出させました。
Thunderbirdの[高度な検索]ウィンドウで、ユーザーは「次のすべて」(AND演算子のみのクエリ)または「次のいずれか」(OR演算子のみのクエリ)。
クエリ自体は、field、condition、value。すべての条件には、NOT演算子を提供する反転があります(たとえば、「次を含まない」、「より大きい」と「より小さいか等しい」が対になっているなど)。
グループ化はなく、ORとAND演算子の両方を含むクエリを作成することは不可能であるため、このソリューションは、テキストベースのクエリの形式よりも強力ではありません。しかし、比較的簡単に理解できます。おそらく上級ユーザー(パワーユーザーでない場合でも)には十分役立ち、実装は比較的簡単です。
こちら からの画像。
クエリのテキスト表現の表現力を置き換えるGUIはまだ見ていません。
Bugzillaにはやや不格好な カスタム検索 インターフェースがあり、「高度な機能を表示」して(a OR b) AND (c OR d NOT e)
のような基準のグループを括弧で囲むことができます。 1つの間違ったクリックですが、Bugzillaでの検索はGETリクエストであるため、URL内のクエリのテキストを操作することが可能です。
個々の基準が複雑すぎる(つまり、単純なキーワードではない)場合は、ブールロジックを実験して個々の基準から分離することができます。
Criteria:
1. ddd ddd ddd
2. ddd ddd ddd
3. ...
□ Match ALL Criteria
□ Match ANY Criterium
■ Create Custom Query [?](help box):
+---------------------------------+
|1 AND 2 AND 3 |
+---------------------------------+
手動で編集しない限り、テキストボックスには、すべての条件と一致する場合のANDと、ANYと一致する場合のORを事前に入力する必要があります。手動で編集した後は自動的に変更されません。除外された条件は、適切な警告メッセージで赤く強調表示されます。
ボタンを提供できます ANDORNOT() -そのコマンドをテキストボックスに挿入するために押すと、基準をテキストボックスにドラッグするのと同じように、任意の位置にドラッグアンドドロップすることもできます。
しかし、いつものように、ユーザーに質問してソリューションをテストしてください。