リストビューに条件を設定してデータを抽出したりデータを並べ替えることができます。
リストビューのデータの抽出には、そのページで使用するデータを絞り込む前処理としての抽出とアプリケーションのユーザーが目的のデータを検索する行為としての抽出の2種類が存在します。
たとえば、1つのテーブルに入庫データと出庫データの両方が格納されている場合、入庫を管理するページでは入庫データしか使用しないため「前処理としての抽出」で入庫のデータを絞り込む実装を行います。入庫を管理するページでは、アプリケーションのユーザーが指定月の入庫データを検索して画面に表示させたいという要望があります。この場合、指定月のデータを検索してデータを絞り込む部分を「検索による抽出」で実装します。
前者の実装は、リストビューのクエリー条件機能を使用します。後者の実装は、「クエリー」コマンドを使用します。
リストビューのクエリー条件機能で除外されたデータが、その後の「クエリー」コマンドによる検索結果で表示されることはありません。リストビューのクエリー条件機能で抽出したデータが「クエリー」コマンドの抽出対象(検索の元データ)となるためです。「クエリー」コマンドの抽出対象に影響を与えずに、ページの表示時にリストビューデータの抽出を行いたい場合には、リストビューのクエリー条件機能ではなく、ページロード時のコマンドとして「クエリー」コマンドを使用します。
1 リストビューを選択してリストビューツール[デザイン]→[クエリー条件]をクリックします。
2 「クエリー条件」ダイアログで[新しい条件]をクリックしてデータを抽出する条件を設定します。
複数の条件を設定してAnd/Orで接続することができます。
And/Or |
2つ目以降の条件は直前の条件とAnd/Orで接続できます。 |
括弧 |
複数の条件を「(」と「)」を使用して評価順序を変更します。 |
フィールド |
クエリーを実行するフィールドを指定します。 |
条件 |
=(等しい)、<>(等しくない)などの比較演算子を指定します。 |
値 |
比較する値を指定します。値は固定値のほか、セルの指定、%Null%などの特殊キーワードが使用できます。データ取得のキーワードを参照してください。 |
[ ]をクリックするとクエリー条件ダイアログで直接数式を入力することができます。また、セルをクリックすることでセル位置が自動的に入力されます。
1 ユーザーが検索条件を入力するためのテキストボックス型セルを作成します。
検索する値が日付型の場合には日付型セル、数値の場合には数値型セルの使用をおすすめします。
2 「クエリー」コマンドを設定するためのボタン型セルを作成します。
3 右ペインから[コマンド]をクリックして[コマンド]ダイアログを開き、[コマンドの選択]ドロップダウンリストで「クエリー」を選択します。
4 [新しい条件]ボタンをクリックして条件を1つ追加し、作成したい検索の条件を設定します。
ここでは「所属」を部分一致で検索できるようにするために、フィールド(左辺)に「所属」フィールド、比較演算子として「指定値を含む」を指定します。
5 作成した条件の値(右辺)にテキストボックス型セルを指定します。その後[コマンド]ダイアログの[OK]ボタンをクリックしてダイアログを閉じます。
ここではテキストボックス型セルをB2セルに作成したため、指定する文字列は「=B2」となります。
6 [ホーム]→[開始(デバッグ)]をクリックして、検索機能が動作することを確認します。
ここでは検索用のテキストボックスに「開発」と入力し、[検索]ボタンをクリックすることで「所属」フィールドに「開発」という漢字が含まれるデータのみがリストビューに表示されています。
「クエリー」コマンドの詳細については クエリー を参照してください。
1 リストビューを選択してリストビューツール[デザイン]→[並べ替え]をクリックします。
2 「並べ替え条件」ダイアログで[新しい条件]をクリックしてデータを並べ替える条件を設定します。
フィールド |
並べ替えの基準になるフィールドを選択します。 |
並び順 |
「昇順」または「降順」を選択します。 |
[新しい条件]をクリックして複数の並べ替え条件を設定することもできます。
この場合、上にある条件が優先されます。
並び替えによって、リストビューの選択行が先頭行にならなくなります。この場合、Forguncy Builder Proの機能であるJavaScript APIを使うことで先頭行に移動することができます。具体的には、ページロード時のコマンドの最後に、JavaScriptコードの実行コマンドで以下のようなコードを追加します。そうすることで、先頭行が選択された状態でページが開かれます。
<サンプルコード>
var p = Forguncy.Page;
var mylist =
p.getListView("リストビュー1");
mylist.selectRow(0);