version 3
DIFFERENCE (set; subtractSet; resultSet)
Parameter | Type | Description | |
set | String | Set | |
subtractSet | String | Set to subtract | |
resultSet | String | Resulting set |
Description
DIFFERENCE compares set1 and set2 and excludes all records that are in set2 from the resultSet. In other words, a record is included in the resultSet only if it is in set1, but not in set2. The following table shows all possible results of a set Difference operation.
Set1 | Set2 | Result Set |
Yes | No | Yes |
Yes | Yes | No |
No | Yes | No |
No | No | No |
The result of a Difference operation is depicted here. The shaded area is the result set.
The resultSet is created by DIFFERENCE. The resultSet replaces any existing set having the same name, including set1 and set2. Both set1 and set2 must be from the same table. The resultSet belongs to the same table as set1 and set2.
4D Server: In Client/Server, interprocess and process sets are maintained on the server machine, while local sets are maintained on the client machines. DIFFERENCE requires the three sets to be on the same machine. Consequently, all or none of the sets must be local. See the discussion 4D Server and Sets in the 4D Server Reference manual for more information.
Example
This example excludes the records that a user selects from a displayed selection. The records are displayed on screen with the following line:
DISPLAY SELECTION ([Customers]) ` Display the customers in a list
At the bottom of the list of records is a button with an object method. The object method excludes the records that the user has selected (the set named "UserSet"), and displays the reduced selection:
CREATE SET ([Customers]; "$Current") ` Create a set of current selection DIFFERENCE ("$Current";"UserSet";"$Current") ` Exclude selected records USE SET ("$Current") ` Use the new set CLEAR SET ("$Current") ` Clear the set
See Also