RAD Studio
内容インデックス
前へ上へ次へ
Filter プロパティの設定

Filter プロパティを使ってフィルタを作成するには,このプロパティの値として,フィルタのテスト条件を示す文字列を設定します。たとえば次の文は,データセットの State 項目をテストして,カリフォルニア州を表す値が入っているかどうか調べるフィルタを作成します。

Dataset1.Filter := 'State = ' + QuotedStr('CA');

 

Dataset1->Filter = "State = 'CA'";

ユーザーが入力したテキストに基づいて Filter の値を指定することもできます。たとえば次の文は,編集ボックスのテキストを Filter に代入します。

Dataset1.Filter := Edit1.Text;

 

Dataset1->Filter = Edit1->Text;

ハードコードされたテキストと,ユーザーが入力したデータの両方に基づいて文字列を作成することもできます。

Dataset1.Filter := 'State = ' + QuotedStr(Edit1.Text);

 

Dataset1->Filter = AnsiString("State = '") + Edit1->Text + "'";

フィルタ中に明示的に設定しない限り,空白の項目値は現れません。

Dataset1.Filter := 'State <> ''CA'' or State = BLANK';

 

Dataset1->Filter = "State <> 'CA' or State = BLANK";

メモ: Filter の値を指定した後にフィルタをデータセットに適用するには,Filtered プロパティを True に設定します。
フィルタで次の比較演算子と論理演算子を使用すると,項目値どうしの論理演算のほか,項目値をリテラルまたは定数と比較できます。  

フィルタに使用できる比較演算子と論理演算子  

演算子 
意味 
<  
より小さい  
>  
より大きい  
>=  
以上  
<=  
以下  
=  
等しい  
<>  
等しくない  
AND  
2 つの文がどちらも True かどうか調べる  
NOT  
次の文が True でないか調べる  
OR  
2 つの文のどちらか一方または両方が True か調べる  
+  
数値の加算,文字列の連結,または日付/時刻値に数値を加算する(一部のドライバでのみ使用可能)  
-  
数値の減算,日付の減算,または日付から数値を減算する(一部のドライバでのみ使用可能)  
*  
2 つの数値を乗算する(一部のドライバでのみ使用可能)  
/  
2 つの数値で除算を行う(一部のドライバでのみ使用可能)  
*  
部分的な比較のためのワイルドカード(FilterOptions には foPartialCompare が含まれていなければならない)  

これらの演算子を組み合わせて使用すると,高度なフィルタを作成できます。たとえば次の文は,2 つのテスト条件を満足していることを確認してから,レコードの表示を認めます。

(Custno > 1400) AND (Custno < 1500);

メモ: フィルタがオンのとき,ユーザーがレコードを編集することによって,そのレコードがフィルタのテスト条件に一致しなくなることがあります。そのレコードを次にデータセットから取り出したときには,それが "消えて" いるように見えるかもしれません。その場合は,フィルタ条件に適合した次のレコードが現在のレコードになります。

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
このトピックに対する評価をお聞かせください フィードバックを送信