Recherche avec des placeholders indexés pour les attributs et les valeurs

Goedendag,

Cette recherche avec des placeholders indexés pour les attributs et les valeurs fonctionne bien:
<code 4D>
C_OBJECT($QuerySettings;$ent)
$QuerySettings:=New object()

$QuerySettings.parameters:=New object(“date”;“2019-06-01”)
$QuerySettings.attributes:=New object(“field”;“Date_event_D”)

$ent:=ds.EVENT.query(":field = :date";$QuerySettings)
</code 4D>

Comment doit changer ce code pour pouvoir trouver 2 dates différentes dans le champ event avec un OR ?

(On pourrait vouloir varier et trouver 1 date dans deux champs de la même table)

Bonjour,

On peut faire ceci:

<code 4D>
$QuerySettings.parameters:=New object(“dates”;New collection(“2019-06-01”;“2017-01-01”))
$QuerySettings.attributes:=New object(“field”;“Date_event_D”)

$ent:=ds.EVENT.query(":field IN :dates";$QuerySettings)
</code 4D>

et pour trouver une date dans 2 champs différents:

<code 4D>
$QuerySettings.parameters:=New object(“date”;“2019-06-01”))
$QuerySettings.attributes:=New object(“field1”;“Date_event_D”;“field2”;“Date_event_X”)

$ent:=ds.EVENT.query(":field1 = :date or :field2 = :date";$QuerySettings)
</code 4D>

Je me réponds d’autant plus que la question était mal formulée pour mon besoin

pour un User, je dois chercher les interventions entre deux dates

<code 4D>
C_OBJECT($QuerySettings)
$QuerySettings:=New object()

$QuerySettings.parameters:=New object(“date1”;“2016-10-19”;“date2”;“2018-12-15”;“mcmid”;$T_Identifier)
$QuerySettings.attributes:=New object(“field1”;“Date_event_D”;“field2”;“Date_event_D”;“fieldmcmid”;“Identifier”)

C_OBJECT($ent)
$ent:=ds.EVENT.query(":field1 >= :date1 AND :field2 <= :date2 AND :fieldmcmid = :mcmid";$QuerySettings)

</code 4D>

Et ça marche très bien :sunglasses: