DIFFERENCE
DIFFERENCE ( set ; subtractSet ; resultSet )
引数 | 型 | 説明 | |
---|---|---|---|
set | Text | → | セット |
subtractSet | Text | → | 取り除くセット |
resultSet | Text | → | 結果のセット |
説明
DIFFERENCEコマンドは、setとsubtractSetを比較し、subtractSetに格納されている全てのレコードをsetから取り除きます。つまり、setにだけ存在し、subtractSetには存在しないレコードのみをresultSetに格納します。以下の表に、DIFFERENCEコマンドで考えられるすべての組み合わせを示します。
Set1 | Set2 | 結果セット |
---|---|---|
○ | × | ○ |
○ | ○ | × |
× | ○ | × |
× | × | × |
以下の図に、集合差異演算の処理結果を図で示します。塗りつぶした部分が結果のセットです。
resultSetは、DIFFERENCEコマンドで作成されます。resultSetと同じ名前のセット (set, subtractSetも含めて) が既に存在していた場合、resultSetに置き換えられます。setとsubtractSetは同じテーブルに属していなければなりません。resultSetもsetとsubtractSetと同じテーブルに属します。
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") //セットを消去する