Commander une sélection d’entités avec cette nouvelle méthode ORDA

Traduit automatiquement de Deepl

Dans un précédent article de blog, vous avez appris à construire des critères de recherche sophistiqués et complexes en appliquant des formules dans une requête ORDA. Pour continuer à vous fournir des outils de développement complets et puissants, une nouvelle méthode ORDA est disponible : orderByFormula(). Avec l’aide de formules, vous pouvez maintenant ordonner une sélection d’entités en utilisant des critères complexes dans une méthode de projet ou une expression 4D.

HDI : Exemples pour ordonner une sélection d’entités avec une formule

Le critère d’ordre est évalué lorsque la formule est donnée sous forme de chaîne de caractères ou d’un objet Formula à la méthode orderByFormula() sous forme de chaîne ou d’objet.

Ordonner avec une formule sous forme de chaîne

Ici, nous avons une DataClass, Companies, et nous ordonnons toutes les entreprises en fonction de leurs bénéfices (bénéfices = revenus – coûts).

Notez que l’entité est accessible via la commande This pour accéder à l’entité.

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("This.revenue - This.costs")

Commande avec un objet formule

Ici, nous classons les entreprises en utilisant les mêmes critères, mais au lieu d’une chaîne de caractères, nous utilisons un objet Formula et nous trions par ordre décroissant.

C_OBJECT($companies;$orderedCompanies;$formula)
$formula := Formula(This.revenue - This.costs)
$companies :=ds.Companies.all()

$orderedCompanies:=$companies.orderByFormula ($formula;dk descending)

Notez que l’utilisation d’un objet Formula présente certains avantages (tels que l’autocomplétion, les couleurs dans l’éditeur de code, etc.) par rapport à l’utilisation d’une formule sous forme de chaîne.

La méthode orderByFormula() offre encore plus d’options. Consultez la documentation et téléchargez l’IDH ci-dessus pour plus de détails.

à propos de la commande d’une sélection d’entités

Vous pouvez désormais insérer une déclaration order by à l’intérieur de la méthode membre query() elle-même. C’est un avantage considérable lorsque vous travaillez en mode client/serveur, car vous pouvez combiner la requête et l’action de commande dans la même demande, ce qui réduit le nombre de demandes envoyées au serveur et votre trafic réseau.

C_OBJECT($companies)
$companies :=ds.Companies.query("revenue> :1 order by costs desc";5000)

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.