私たちのアプリケーションは、ユーザーにとって貴重な情報を表形式で表示します。ブール/ロジック検索に基づくフィルタリング機能があります。コーチングの後でも、AND OR > >= などはユーザーにとってなじみのないものであるため、ユーザーはフィルターの使用方法を理解していない傾向があります。このフィルターは、コードに簡単に変換できるため、プログラマーにとって簡単です。これをよりユーザーフレンドリーにし、エラーを起こしにくくする方法の例はありますか?
9 に答える
演算子を平易な英語のテキストに変換し、そこから選択するように依頼します。例:To
著者が[テキストフィールド]で、価格が[より小さい/より大きい] [テキストフィールド]であるすべての書籍を表示してください
[より小さい/より大きい]はドロップダウンリストです
[テキストフィールド]は入力ボックスです
ユーザーがすべてのフィールドに入力した後の結果のテキストは、単純な英語になります。
例:著者がスティーブンキングで、価格が10ドル未満 のすべての本を見せてください
私はフリーランスに慣れていたときに私のアプリでこれを使用し、ユーザーはそれを愛していました。気の利いたUIプログラミングを使用して、フィルターをnレベルに拡張するオプションを指定できます。
以前は、この問題を解決する必要があったとき、ユーザーにアイテムのリスト (1 つまたは複数の列) を提示し、テキストを入力するための 1 つのテキスト ボックスを提供しました。次に、テキストを列のテキストと照合し、入力時にリストを折りたたみます (一致しないレコードを削除します)。
このアプローチは、ユーザーに Google を思い出させます。誰もがGoogleのやり方を知っています。
最初にすべての項目の大きなリストを表示するのが気に入らない場合は、最初に空の結果ペインを表示し、検索を入力した後に結果を表示することができます。
そのテーブルへの最も一般的なクエリ用にいくつかのプリセットフィルターを提供できます-それが使用しているアプリケーションで可能であれば
「表示の代わりにカウント」メカニズムを提供して、ユーザーが潜在的に取得する行数を確認できるようにすることができます
オンラインでいくつかの例を含むWikiページを提供できます
あなたは彼らにQBEツールを与えることができます
それが幸運を助けることを願っていますMikeD
私の経験では、AND 条件と OR 条件の違いをエンド ユーザーに理解してもらうことはできません。したがって、ANDing または ORing が組み込まれるようにフィルターを作成します。一般に、私のロジックは次のとおりです。
結果を制限するために、さまざまなフィールドの基準が AND で結合されます。
同じフィールドの複数の値は、効果的に OR 結合されてから、他のフィールドの条件に対して AND 結合されます。通常、コンマ区切りリスト (IN () に変換)、ダッシュ区切りの範囲 (BETWEEN に変換)、ワイルドカード値 (LIKE に変換)、および任意の組み合わせ (たとえば
Customer ID: 1-10, 50, 52
) の単一フィールドへの入力を検出します。
ほとんどのユーザーはこのシステムを直感的に理解していると思います。
もちろん、場合によっては、ある程度の ORing を備えた別のインターフェイスが必要になります。そのような場合は、通常、「これらのいずれかが true」というラベルの付いたパネルまたはグループ ボックスに、検索ユーザー インターフェイスのセクションを用意します。
Web アプリケーションでは、telek はグリッドに関する優れたアイデアを持っていました。デスクトップ アプリケーションでもそれを実行できるはずです。
私は最近、この問題に取り組んでいます。私の解決策は、より説明的になり、記号の代わりに単語を使用し、より読みやすいレイアウトになるように単語を変更することです。説明のために、フィルター式を想像してください。
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]
したがって、階層的アプローチから借用していますが、AND と OR を ALL または ANY に変更しています。これは、上から下まで少し簡単に読むことができることを意味します。
Django のビルトイン管理インターフェースには、フィルター用の非常に直感的な UI があると思います。
ドキュメントには簡単なスクリーンショットがありますが、特に日付でフィルタリングする場合は、さらに多くのことができます。
Django の管理インターフェースを詳しく調べて、Django のトリックを自分のケースに適用できるかどうかを確認してください。
MS Access Query ジェネレーターに似たものだと思います。また、初めてのユーザーをガイドする、状況に応じた優れたヘルプ システムが必要になる場合もあります。
Theresa Neil は、複雑なルール インターフェース (別名述語句) を構築するためのいくつかのアプローチを、iTunes がネストされた句のジレマを解決する投稿で説明しました。いくつかの良い例があります。私は Apple が iTunes でそれを行う方法が本当に好きです (ただし、私は iTunes を使用していません)。