最近のアクセス:
ネイティブ モバイル アプリケーションでのアプリ内検索の方法

ここでは、ネイティブ モバイル アプリケーションでアプリ内検索を作成する方法と、その概要について説明します。
アプリケーションによって管理されているデータの量は、ますます増加しています。現在、あらゆるシステムにおいて、できる限り迅速に、かつわかりやすい方法でコンテンツをエンドユーザーに表示することが重要です。
これを実現するため、GeneXus には、検索パターンと呼ばれる必須エレメントを強化する 2 つの異なる (ただし密接に関連する) コンポーネントが用意されています。

SearchBox コントロール

SearchBox コントロールは、アプリケーションの検索メカニズムを改善するために設計されている機能です。その目的は、エンドユーザーが検索したい最新のキーワードを格納し、それらにわかりやすい UI を指定することです。
警告: SearchBox コントロールを使用する場合は、項目属性/変数コントロールの [ Enter Event ] プロパティを設定しないでください。設定すると、キーボード入力アクションにより常に検索が実行されるようになります。

コントロールの追加

1. パネル (CharacterVarChar、または LongVarChar) で文字列変数を作成します。
2.作成した変数をツールボックスからドラッグして、抽象レイアウトにドロップします。
3.SearchBox で [ Control Type ] プロパティを設定します。

これらの手順を次の図にまとめています:

イメージ:32271.png

プロパティ

[ 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
      テキストを照合する文字列の項目属性です。
結果パネルを作成するプロセス全体をまとめると、次の画像のようになります。
イメージ:32064.png

結果パネルへの機能の追加

Search 外部オブジェクトの目的は、エンドユーザーが特定の条件を実行した場合にトリガーするイベントを結果パネルで定義することです。たとえば、テキストが変更されたときに結果パネルでグリッドを更新する場合に役立ちます。結果として、次のようなイベントを記述できます: 
Event Search.SearchTextChanged(&vText)
    &SearchedText = &vText
    refresh
EndEvent
&SerchedText は、parm ルールで受け取られた文字列変数です。 

ダウンロード

こちらからこの例をダウンロードできます。
: Android デバイスでは、アプリケーションバーの代わりに、SearchBox コントロールが表示されます。そして、それぞれの Theme クラス (たとえば、検索されたテキストの Forecolor) でカスタマイズすることが可能です。

適用範囲

オブジェクト: PanelWork With 
データタイプ: CharacterVarCharLongVarChar
ジェネレーター:  .NET、  Java、  Apple、  Android 

使用可能バージョン

この機能は GeneXus 15 以降のバージョンで適用されます。


サブページ
Created: 17/05/30 19:02 by Admin Last update: 24/04/07 19:09 by Admin
カテゴリ
Powered by GXwiki 3.0