高度なフィルタリング

AllowFiltering="true"(ReactでallowFiltering)を設定すると、グリッドのツールバーにフィルターボタンが付与され、FetchXMLクエリビルダー内でビューのフィルターが開かれ、ユーザーが変更できます。FetchXMLがフィルターできるものは何でも構築可能です:テーブルのカラムの条件(ANDとORでグループ化)、値や他の列との比較、関連するテーブル(関連レコードの存在や独自の条件の一致にかかわらず)。ユーザーが読むことができる列や関連テーブルのみが提供され、サーバーはそれ以外のフィルターを拒否します。ユーザーのフィルターはグリッドにビューが表示される間は続きます:別のビューが自分のビューから始まります。

試料接点のフィルタリング

ツールバーの フィルター ボタンを押してください。ダイアログはグリッドに表示されるビューのフィルターで開きます。 「すべての連絡先 」には独自のフィルターがありません。連絡先テーブルの行の安全性は、あなたが読む可能性のある連絡先へのすべてのクエリを保持しているため、空のまま開き、あなたの連絡先に対応できます。 「Companies」の「都市を持つ会社 」は、会社が都市を持つ者を、関連するテーブルを通じて独自の条件で保持します。それらを変更し、「 適用」を押すと、グリッドは最初のページから一致する行を表示します。フィルターボタンはフィルターがあなたのものであることを示すために満たされます。試してみること:

  • 列のメニューを開き、ヘッダーの矢印で「フィルターを選び」を選択して、その列だけをフィルターします:開始時の値、または日付の日付です。ヘッダーには行がフィルターされている間にフィルターアイコンが表示され、条件はフィルターダイアログの他と共に表示されます。同じメニュー内のフィルターをクリアすると、フィルターは削除されます。
  • 行を追加して列、演算子、値を選ぶ — 名前の数文字、例えば40歳以上の年齢 を含む 。値エディタは列の後に位置し、日付の日付選択、選択のリスト、検索のレコード選択。
  • 条件を 「Match any(OR) 」または「 Match all(AND)」で組み合わせるグループを追加し、必要に応じて深く入れ子にできます。
  • 「 By 値 」から「 By 」列 に行を切り替えて、連絡先の2つの列を比較します。
  • 「関連エンティティを追加」と「関連エンティティを追加」とし、関係性(例えば連絡先の会社)を選択し、それに独自の条件を与えるか、または「関連がない行」に変更するか、条件に一致しない連絡先を保持するために「関連がない行」に変更します。閲覧可能な表のみがリストされています。
  • ダイアログを再度開いて「 View のリセット 」を押して、ビューのフィルターに戻るか、別のビューを選択すると、そのビューは別のフィルターから始まっています。
Reactの例 ブレイザーの例 React TypeScript Razor

ユーザーが読まないかもしれない内容をフィルタリングするビュー

アクティブオーナーの連絡先 は、所有者のユーザーアカウントが有効になっている連絡先を、関連するテーブル(システムユーザー)を通じて保持しますが、デモでは訪問者にはアクセスできません。すべての連絡先(フィルターが省略されている)や全く表示しない(関連するテーブルが行に一致しない)を表示するのではなく、グリッドがフィルタリングできないテーブルを示し、開発者がユーザーにアクセスを与えたり表示を変更したりできます。 フィルター ダイアログを開き、所有者を連れて行を見ると、ダイアログはビューの関連テーブルを表示しますが、システムユーザーを追加することはできません。内部ユーザーがデモにサインインし、その自身のDataverseセキュリティロールが何を読み取るかを決定しますが、行は見えます。

Reactの例 ブレイザーの例 React TypeScript Razor