Bestellen Sie eine Entitätsauswahl mit dieser neuen ORDA-Methode

Automatisch übersetzt von Deepl

In einem früheren Blog-Beitrag haben Sie gelernt, wie man anspruchsvolle und komplexe Suchkriterien durch die Anwendung von Formeln in einer ORDA-Abfrage erstellen kann. Um Ihnen noch umfassendere und leistungsfähigere Entwicklungswerkzeuge zur Verfügung zu stellen, ist eine neue ORDA-Methode verfügbar: orderByFormula(). Mit Hilfe von Formeln können Sie nun eine Entitätsauswahl nach komplexen Kriterien in einer Projektmethode oder einem 4D-Ausdruck ordnen.

HDI: Beispiele für die Bestellung einer Entitätsauswahl mit einer Formel

Das Ordnungskriterium wird ausgewertet, wenn die Formel als String oder als Formula Objekt an die orderByFormula() Methode übergeben wird.

Ordnung mit einer Formel als String

Hier haben wir eine dataClass, Companies, und wir ordnen alle Unternehmen basierend auf ihren Gewinnen (Gewinne = Umsatz – Kosten).

Beachten Sie, dass der Zugriff auf die Entität über den This Befehl.

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("Diese.Einnahmen - Diese.Kosten")

Bestellung mit einem Formelobjekt

Hier ordnen wir die Unternehmen nach denselben Kriterien, aber statt eines Strings verwenden wir ein Formula Objekt, und wir sortieren in absteigender Reihenfolge.

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

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

Beachten Sie, dass die Verwendung eines Formula Objekts einige Vorteile (z. B. automatische Vervollständigung, Farben im Code-Editor usw.) gegenüber der Verwendung einer Formel als Zeichenfolge bietet.

Die Methode orderByFormula() Methode hat noch mehr Optionen. Weitere Informationen finden Sie in der Dokumentation und im HDI, das Sie oben herunterladen können.

über das Anordnen einer Entitätsauswahl

Sie können nun eine order by -Anweisung innerhalb der query() -Methode selbst einfügen. Dies ist ein großer Vorteil, wenn Sie im Client/Server-Modus arbeiten, da Sie die Abfrage und die Bestellaktion in derselben Anfrage kombinieren können, was die Anzahl der an den Server gesendeten Anfragen und Ihren Netzwerkverkehr reduziert.

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

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.