ここでは、ネイティブ モバイル アプリケーションでアプリ内検索を作成する方法と、その概要について説明します。
アプリケーションによって管理されているデータの量は、ますます増加しています。現在、あらゆるシステムにおいて、できる限り迅速に、かつわかりやすい方法でコンテンツをエンドユーザーに表示することが重要です。
これを実現するため、GeneXus には、検索パターンと呼ばれる必須エレメントを強化する 2 つの異なる (ただし密接に関連する) コンポーネントが用意されています。
SearchBox コントロールは、アプリケーションの検索メカニズムを改善するために設計されている機能です。その目的は、エンドユーザーが検索したい最新のキーワードを格納し、それらにわかりやすい UI を指定することです。
1. パネル (
Character、
VarChar、または
LongVarChar) で文字列変数を作成します。
2.作成した変数をツールボックスからドラッグして、抽象レイアウトにドロップします。
3.SearchBox で [
Control Type ] プロパティを設定します。
これらの手順を次の図にまとめています:
[
Control Type ] プロパティの値を SearchBox に設定すると、新しいプロパティが表示されます。
プロパティ |
値 |
説明 |
Type |
Dynamic (既定) |
エンドユーザーがアプリケーションバーにフォーカスを合わせたときに、バーに検索ボックスが表示されます。 |
Explicit |
エンドユーザーが検索を実行する (つまり、キーボードの検索ボタンを押す) まで、アプリケーションバーに検索ボックスは表示されません。 |
|
|
|
Result Panel |
(なし) |
このプロパティは検索パターンにおける必須項目です。検索結果を表示するには、特別に設計されたパネルを使用してこのプロパティを設定する必要があります。このパネルのアプリケーションバーに検索ボックスが表示されます。標準的な例については、「ヒント」を参照してください。 |
DoSearch
値が設定されている
クライアント側のイベントで、検索
結果パネルをプログラムによって呼び出します。
たとえば、
&SearchedText が SearchBox コントロールで定義された変数の場合、次の文を記述できます:
&SearchBox.DoSearch()
パラメーター: なし
戻り値: なし
最初の決定事項は、検索結果を表示する結果パネルを適切に設計することです。
適切な設計を行うには、特定のルールに従う必要があります。
1.parm ルールの追加
結果パネルは、関連する SearchBox コントロールを含むメインオブジェクトによって暗示的に呼び出されます。このコントロールは、検索する語句または文を格納する文字列変数 (Character、VarChar、LongVarChar ドメイン) にのみ適用されます。そのため、結果を表示するには、この文字列を受け取る parm ルールを結果パネルに含める必要があります。
parm(&SearchedText)
このルールで受け取られた変数は、
in/
out 指示なしで宣言されます。これは、変数の割り当てや単純な読み取りの場合に便利だからです。
2.条件付きグリッドの追加
結果パネルの目的は、キーワードに一致する一連のレコードを表示することです。そのため、グリッドコントロールを追加し、コンテンツをフィルタリングする
条件をコントロールに設定する必要があります。通常、この条件には
Like 演算子とワイルドカード文字 (%) を利用します。したがって、次のような条件を記述できます:
MyStringAttribute LIKE '%'+&SearchedText;
入力値の説明:
&SerchedText
parm ルールで受け取られた文字列変数です。
MyStringAttribute
テキストを照合する文字列の項目属性です。
結果パネルを作成するプロセス全体をまとめると、次の画像のようになります。
Search 外部オブジェクトの目的は、エンドユーザーが特定の条件を実行した場合にトリガーするイベントを結果パネルで定義することです。たとえば、テキストが変更されたときに結果パネルでグリッドを更新する場合に役立ちます。結果として、次のようなイベントを記述できます:
Event Search.SearchTextChanged(&vText)
&SearchedText = &vText
refresh
EndEvent
&SerchedText は、
parm ルールで受け取られた文字列変数です。
こちらからこの例をダウンロードできます。
注:
Android デバイスでは、アプリケーションバーの代わりに、SearchBox コントロールが表示されます。そして、それぞれの Theme クラス (たとえば、検索されたテキストの Forecolor) でカスタマイズすることが可能です。
オブジェクト: Panel、
Work With
データタイプ: Character、
VarChar、
LongVarChar
ジェネレーター:
.NET、
Java、
Apple、
Android
この機能は
GeneXus 15 以降のバージョンで適用されます。