ユーザーが必要なデータを検索できる検索コンポーネントを用意します。データは、検索キーワードに基づいてレポートから取得されます。
利用ケース
図書館や書籍管理システムで検索機能を提供したい場合を想定します。特定のジャンルの書籍を検索したい顧客は、メイン検索の下にある利用可能なカテゴリ一覧から、簡単に目的のジャンルを探すことができます。
手順
1. 添付の Books.csv ファイルを インポートして フォームを作成します。
2. 作成したフォームの名前を 'Book' に変更し、レポート名を 'Books' に変更します。
3. 次に、アップロードされた Books のすべてのジャンルを取得する 関数を作成 します。この一覧をカテゴリ一覧の表示に使用します。
4. 以下の Deluge コードを Deluge エディターに追加して、ジャンルを取得します。
- list getGenres()
- {
- //ジャンルのリストを返すため、戻り値の型は list です
- //利用可能なすべての重複しないジャンルを取得
- genres = Book[ID != null].Genre。getAll().distinct();
- 返品する genres;
- }
上記のコードは、利用可能なすべての重複しないジャンルのリストを返します。
5. 次に書籍を検索するための ページを作成 し、名前を 検索 for Books とします。
6. 検索要素をドラッグし、差し込み項目を 件名/Author に設定します。[ 設定 ] アイコンをクリックし、 検索結果コンポーネント として レポート を選択し、 Books レポートを選択します。
7. 件名または Author に検索文字列が含まれる書籍レポートを検索する条件を設定します。
検索要素の設定は次のとおりです。
8. 検索要素の下に HTML スニペット をドラッグします。
9. 現在のジャンルに一致するデータのみが表示されるように、 Books データベースをフィルタリングするリンク付きのジャンル一覧を作成します。
- <%{
- //手順 3 と 4 で作成した関数から、すべてのジャンルを取得します
- genres = thisapp。getGenres();
- for each genre in genres
- {
- %>
- <!- Books レポートを適切にフィルタリングする HTML アンカーを作成 -->
- <a クラス='genre-リンク' href='#レポート:Books?Genre=<%=genre%>'><%=genre%></a><br/>
- <style>
- <!-- アンカーのスタイル -->
- a。genre-リンク {
- display: inline-block;
- width: 115px;
- height: 25px;
- padding: 10px;
- padding-left: 20px;
- text-align: left;
- border-radius: 5px;
- フォント-重さ: bold;
- 折れ線グラフ-height: 25px;
- }
- </style>
- <%
- }
- }%>
10. 最後に、任意ですが、 公開 設定を行い、 Books 用検索 ページ と Books レポートを、すべてのユーザーが検索して在庫状況を確認できるようにします。
動作を確認する