entitySelection.or( ) メソッドは、エンティティセレクションを、論理OR 演算子を使用して、entity あるいは entitySelection 引数のエンティティあるいはエンティティセレクションと組み合わせます。そして、エンティティセレクションと渡した引数の全てのエンティティを格納した順列なしのエンティティセレクションを返します。
- entity を引数として渡した場合、そのエンティティとエンティティセレクションを比較することになります。エンティティがエンティティセレクションに所属している場合、元のエンティティセレクションへの新しい参照が返されます。そうでない場合、元のエンティティセレクションと渡したエンティティを格納した新しいエンティティセレクションが返されます。
- entitySelection を引数として渡した場合、二つのエンティティセレクションを比較することになります。元のエンティティセレクション、あるいはentitySelection 引数のエンティティセレクションのどちらかに所属しているエンティティを格納した新しいエンティティセレクションが返されます(ORは排他的ではなく、また両方のセレクションで参照されているエンティティは、返されるセレクションに複数格納されることはありません)。
注: エンティティセレクションは、順列ありのものとなしのものとを比較することもできます。返されるセレクションは常に順列なしのものです。詳細な情報については、4D Developer Guide 内のエンティティセレクションの順列あり/順列なし の段落を参照してください。
元のエンティティセレクションとentitySelection 引数が空であった場合、空のエンティティセレクションが返されます。元のエンティティセレクションが空であった場合、entitySelection 引数への参照、あるいはentity 引数のエンティティのみを格納したエンティティセレクションが返されます。
entitySelection 引数が空か、entity 引数がNull であった場合、元のエンティティセレクションへの新しい参照が返されます。
元のエンティティセレクションと渡した引数が、同じデータクラスにリレートされていない場合、エラーが返されます。
C_OBJECT($employees1;$employees2;$result)
$employees1:=ds.Employee.query("lastName = :1";"H@")
$employees2:=ds.Employee.query("firstName = :1";"C@")
$result:=$employees1.or($employees2)
C_OBJECT($employees;$employee;$result)
$employees:=ds.Employee.query("lastName = :1";"H@")
$employee:=ds.Employee.get(686)
$result:=$employees.or($employee)