メインコンテンツまでスキップ
バージョン: 20 R7 BETA

DIFFERENCE

DIFFERENCE ( set ; subtractSet ; resultSet )

引数説明
setTextセット
subtractSetText取り除くセット
resultSetText結果のセット

説明

DIFFERENCEコマンドは、setsubtractSetを比較し、subtractSetに格納されている全てのレコードをsetから取り除きます。つまり、setにだけ存在し、subtractSetには存在しないレコードのみをresultSetに格納します。以下の表に、DIFFERENCEコマンドで考えられるすべての組み合わせを示します。

Set1Set2結果セット
×
×
××
×××

以下の図に、集合差異演算の処理結果を図で示します。塗りつぶした部分が結果のセットです。

resultSetは、DIFFERENCEコマンドで作成されます。resultSetと同じ名前のセット (set, subtractSetも含めて) が既に存在していた場合、resultSetに置き換えられます。setsubtractSetは同じテーブルに属していなければなりません。resultSetsetsubtractSetと同じテーブルに属します。

4D Server: クライアント/サーバモードにおいて、セットはタイプ (インタープロセス、プロセスおよびローカル) およびそれらがどこで作成されたか (サーバまたはクライアント) によって、アクセス可能かどうかが決定されます。DIFFERENCEでは3つのセットが同じマシン上でアクセスできる必要があります。詳細は4D Server Referenceマニュアルの4D Server: セットと命名セレクションに関する説明を参照してください。

例題

以下の例は、表示したセレクションからユーザが選択したレコードを排除します。このレコードリストは、以下のステートメントで画面に表示されます。

 DISPLAY SELECTION([Customers]) //customers をリスト表示

レコードリストの下部には、オブジェクトメソッド付きのボタンがあります。このオブジェクトメソッドはユーザが選択したレコード (UserSet) を排除し、新しいセットを表示します。

 CREATE SET([Customers];"$Current") //カレントセレクションのセットを作る
 DIFFERENCE("$Current";"UserSet";"$Current") //選択したレコードを除外する
 USE SET("$Current") //新しいセットを使用する
 CLEAR SET("$Current") //セットを消去する

参照

INTERSECTION
UNION