4D v16 vous offre une intégration améliorée des champs objet dans votre base de données.
Si vous avez déjà présélectionné des ensembles d’un champ objet, vous pouvez désormais interroger ces ensembles à l’aide d’une seule commande 4D: facile et rapide !
La commande QUERY SELECTION BY ATTRIBUTE fonctionne exactement de la même manière que la commande QUERY BY ATTRIBUTE commande existante, sauf que la recherche est effectuée parmi les enregistrements actuellement sélectionnés par une requête précédente ou un ensemble par exemple.
// demander une ville à l'utilisateur pour effectuer la requête
$value:=Request("City" ; "Springfield")
$recordInSet:=Recordsin set("userSet")
//
// Le set (sélection) est-il vide ?
If ($recordInSet>0)
// peut être dans des attributs de 1er niveau
QUERY BY ATTRIBUTE([Samples] ;[Samples]OB_Field ; "City" ; "=" ;$value;*) // la requête n'est pas terminée...
// ou dans une adresse (avec . path)
QUERY BY ATTRIBUTE([Echantillons] ; | ;[Echantillons]OB_Field ; "Adresse.Ville" ; "=" ;$value;*) // la requête n'est toujours pas terminée...
// ou dans un tableau d'adresses (avec le chemin .[].)
QUERY SELECTION BY ATTRIBUTE([Samples] ; | ;[Samples]OB_Field ; "Address.[].City" ;"=" ;$value) // maintenant, la requête est exécutée !
//
// Vous pouvez mélanger différentes commandes de requête pour définir la requête
//
Else
// la sélection est vide, alerte l'utilisateur
ALERT("Il n'y a pas de contacts sélectionnés. Veuillez sélectionner les contacts dans la liste.")
End if
Vous trouverez plus de détails dans la documentation de la commande QUERY SECTION BY ATTRIBUTE.