Incontro con la funzione distinta migliorata

Tradotto automaticamente da Deepl

Recuperare l’elenco degli elementi unici dei dati è sempre utile quando si manipolano i dati. In alcuni casi, recuperare il numero di occorrenze di ciascun valore è essenziale. La funzione distinct delle classi di selezione Collection ed Entity consente di recuperare un elenco di valori univoci. Con 4D v20, è possibile recuperare anche il numero di occorrenze di ciascun valore distinto.

E non è tutto!

Un oggetto del database può essere utilizzato per salvare i dati personalizzati inseriti dall’utente. Quindi, dal punto di vista del codice, è necessario conoscere tutti i possibili percorsi dell’oggetto. La funzione distinctPaths è stata aggiunta alla classe Entity selection.

Ecco tutto ciò che occorre sapere.

Nuova opzione per distinct

La sintassi è identica per entrambe le classi, Collection e Entity selection. È necessario passare la costante ck count values, o dk count values al secondo parametro chiamato opzione per ottenere un insieme di coppie di attributi: value e count.

Se non si passa l’opzione, il comportamento rimane lo stesso: si ottiene un insieme di valori unici.

esempio con Collection

Per esempio, voglio l’elenco dei valori unici di una collezione di categorie e il numero di occorrenze di ciascuna categoria:

var $col; $category: Collection
$category :=New Collection("Famiglia"; "Amico"; "Lavoro"; "Famiglia"; "Personale")
$col :=$category.distinct (ck count values)

Il risultato è:

[
   {"value":"Family","count":2},
   {"value":"Friend","count":1},
   {"value":"Personal","count":1},
   {"value":"Work","count":1}
]

Esempio con la selezione delle entità

Ad esempio, voglio ottenere l’elenco dei paesi dei miei contatti e il numero di contatti per paese:

var $countries : Collection
$countries :=ds.Contact.all().distinct("paese";dk count values
)

Il risultato è:

[
   {"value":"France","count":2},
   {"value":"Morocco","count":10},
   {"value":"Germany","count":3}
]

Nuova funzione Percorsi distinti

La funzione distinctPaths della classe Entity selection restituisce l’elenco dei percorsi distinti trovati nel campo dell’oggetto indicizzato. È necessario passare il nome del campo oggetto indicizzato come parametro. Questa funzione è equivalente al comando DISTINCT ATTRIBUTE PATHS.

Esempio

Ad esempio, si vogliono recuperare tutti i possibili percorsi del campo oggetto “indirizzo”:

var $paths : Collection
$ paths :=ds.Contact.all().distinctPaths("indirizzo")

Il risultato è:

[
   "Numero",
   "StreetAddress",
   "ExtendedAddress",
   "City",
   "ZipCode",
   "Paese"
]

Avanti…

Non esitate a condividere il vostro feedback e le vostre idee sul forum 4D per aiutarci a migliorare ulteriormente il prodotto.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. 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. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.