4D v16では、データベース内のオブジェクトフィールドの統合が強化されています。
オブジェクトフィールドのセットを既に選択している場合、4Dコマンド1つで、これらのセットを問い合わせることができるようになりました。
この QUERY SELECTION BY ATTRIBUTEコマンドは、既存のコマンドと全く同じように動作します。 QUERY BY ATTRIBUTEコマンドは、既存のコマンドとまったく同じように動作します。ただし、検索は、以前のクエリまたはセットによって現在選択されているレコードの間で実行されます(例)。
//
……。
$value:=Request("City"; "Springfield")
$recordInSet:=Recordsin set("userSet")
//
// セット(選択)が空かどうか?
If($recordInSet>0)
// 第1階層の属性にあるかもしれない
QUERY BY ATTRIBUTE([Samples];[Samples]OB_Field; "City";"=";$value;*)// クエリが終わっていない
//
QUERY BY ATTRIBUTE([Samples]; | ;[Samples]OB_Field; "Address.City";"=";$value;*)// まだクエリが終わっていない.........。
//
QUERY SELECTION BY ATTRIBUTE([Samples]; | ;[Samples]OB_Field; "Address.[].City";"=";$value)//これでクエリが実行されました !
//
//クエリの定義に異なるクエリコマンドを混ぜることができる
//
Else
// 選択肢が空である場合、ユーザーに警告する
ALERT("There is no selected contacts. Please select contacts in the list.")
End if
詳細は、QUERY SECTION BY ATTRIBUTEコマンドのドキュメントに記載されています。