Ordinare una selezione di entità con questo nuovo metodo ORDA

Tradotto automaticamente da Deepl

In un precedente post del blog, si è appreso come costruire criteri di ricerca sofisticati e complessi applicando formule in una query ORDA. Per fornire ulteriori strumenti di sviluppo completi e potenti, è disponibile un nuovo metodo ORDA: orderByFormula(). Con l’aiuto di formule, è ora possibile ordinare una selezione di entità utilizzando criteri complessi in un metodo di progetto o in un’espressione 4D.

HDI: Esempi per ordinare una selezione di entità con una formula

I criteri di ordinamento vengono valutati quando la formula viene fornita come stringa o come Formula al metodo orderByFormula() al metodo.

Ordinare con una formula come stringa

Qui abbiamo una classe di dati, Companies, e ordiniamo tutte le aziende in base ai loro profitti (profitti = ricavi – costi).

Si noti che l’entità è accessibile tramite il comando This .

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("Questo.ricavi - Questo.costi")

Ordinare con un oggetto formula

Qui ordiniamo le aziende usando gli stessi criteri, ma invece di una stringa, usiamo un oggetto Formula e ordiniamo per ordine decrescente.

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

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

Si noti che l’uso di un Formula offre alcuni vantaggi (come il completamento automatico, i colori nell’editor di codice e così via) rispetto all’uso di una formula come stringa.

Il metodo orderByFormula() offre ancora più opzioni. Per maggiori dettagli, consultare la documentazione e scaricare l’HDI qui sopra.

su Ordinare una selezione di entità

È ora possibile inserire una dichiarazione order by all’interno del metodo membro query() stesso. Questo è un grande vantaggio quando si lavora in modalità client/server, perché si possono combinare la query e l’azione di ordinamento nella stessa richiesta, riducendo il numero di richieste inviate al server e il traffico di rete.

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

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.