<< Fare clic per visualizzazione il sommario >> Percorso: Il linguaggio OEL > Funzioni > Prod |
Restituisce il prodotto degli elementi di una lista.
Funzione
Prod(IList list, String projectionExpression, String selectionExpression)
La funzione può essere utilizzata nelle seguenti modalità:
1) Prod(IList list)
2) Prod(IList list, String projectionExpression)
3) Prod(IList list, String projectionExpression, String selectionExpression)
Output |
||
Nome |
Descrizione |
Tipo |
returnValue |
Prodotto numerico dei valori degli elementi della lista. |
Float |
Commenti
La funzione Prod restituisce il prodotto numerico dei valori della lista. Si può utilizzare con un oggetto ArrayValue o IList.
Nel caso in cui gli elementi della lista siano di tipo scalare, è possibile specificare opzionalmente delle espressioni di selezione. Quando si esegue un'operazione matematica con i numeri, il risultato ottenuto è di tipo Float e va assegnato ad un campo di tipo coerente con il tipo atteso del risultato, numerico decimale o numerico a virgola mobile.
Nel caso in cui gli elementi della lista siano dati strutturati o collegamenti estesi, è possibile specificare delle espressioni di proiezione e opzionalmente selezione.
Se list è di tipo lista di collegamenti viene restituito errore.
Modalità 1)
Prod(IList list)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
list |
Lista di partenza: deve essere una lista di elementi numerici. |
|
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Prodotto numerico dei valori degli elementi della lista. |
Float |
|
.
Esempio
Data una lista di oggetti di tipo numerico intero ListaNum, vogliamo ottenere il prodotto di tutti i valori.
Prod(#data.Fields['ListaNum']) |
Modalità 2)
Prod(IList list, String projectionExpression)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
list |
Lista di partenza: può essere una lista dati strutturati o collegamenti estesi con un campo numerico. |
|
|
projectionExpression |
Espressione di proiezione, utile ad individuare una colonna di valori della lista su cui calcolare il prodotto numerico. E' obbligatorio nel caso in cui gli elementi della lista siano dati strutturati o collegamenti estesi. |
String |
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Prodotto numerico dei valori degli elementi della lista. |
Float |
|
Commenti
L'espressione di proiezione è obbligatoria e serve ad individuare, data una lista di strutture, su quale campo di tipo numerico si vuole ottenere il prodotto dei valori. Se le strutture della lista sono eterogenee, l'espressione viene applicata ai dati strutturati e collegamenti estesi che possiedono il campo. L'espressione di proiezione, come variabile di contesto, fa riferimento ai campi delle strutture dati che compongono la lista list. Per utilizzare nell'espressione di proiezione una funzione della libreria OEL è necessario utilizzare il contesto #oel, mentre per riferirsi all'elemento della lista in valutazione occorre utilizzare la variabile di contesto #this. Per maggiori informazioni sulle espressioni di proiezione consultare ProjectionList.
Esempio
Dato un modello di tipo Dati con un campo di tipo lista di dati strutturati, ognuno dei quali contiene un campo denominato Importo. Si vuole ottenere il prodotto di tutti i valori riportati nel campo Importo.
Prod(#data.Fields['ListaDatiStrutturati'],'Fields[''Importo'']') |
Modalità 3)
Prod(IList list, String projectionExpression, String selectionExpression)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
list |
Lista di partenza: può essere una lista di scalari, una lista dati strutturati o una lista di collegamenti estesi con un campo numerico. |
IList |
|
projectionExpression |
Espressione di proiezione, utile ad individuare una colonna di valori della lista su cui calcolare il prodotto numerico. E' obbligatorio nel caso in cui gli elementi della lista siano dati strutturati o collegamenti estesi. Per le liste di elementi scalari specificare null. |
String |
|
selectionExpression |
Espressione di selezione, utile ad individuare un sottoinsieme di righe della lista. |
String |
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Prodotto numerico dei valori degli elementi della lista. |
Float |
|
Commenti
L'espressione di proiezione projectionExpression è obbligatoria per le liste di dati strutturati e collegamenti estesi ed è utile ad individuare su quale campo numerico di esse si vuole ottenere il prodotto dei valori. Se le strutture della lista sono eterogenee, l'espressione viene applicata ai dati strutturati e collegamenti estesi che possiedono il campo.
L'espressione di selezione selectionExpression, può essere utilizzata per le liste di scalari, dati strutturati e collegamenti estesi ed è utile ad applicare un filtro sugli elementi della lista. Se selectionExpression viene fornita, il campo selezionato non deve essere necessariamente numerico, ma può essere di qualunque tipo.
Per le liste di dati strutturati e collegamenti estesi in cui sono specificate entrambe le espressioni projectionExpression e selectionExpression, la funzione esegue su list la selezione e al risultato ottenuto applica la proiezione.
Le espressioni di proiezione e selezione, come variabile di contesto, fanno riferimento ai dati che compongono la lista list. Per utilizzare in un'espressione una funzione della libreria OEL è necessario utilizzare il contesto #oel, mentre per riferirsi all'elemento della lista in valutazione occorre utilizzare la variabile di contesto #this. Per maggiori informazioni sulle espressioni di proiezione consultare ProjectionList. Per maggiori informazioni sulle espressioni di selezione consultare SelectionList.
Esempio 1
Dato un modello di tipo Dati con un campo di tipo lista di numerici ListaNum, si vuole ottenere il prodotto di tutti i valori riportati nella lista con valore superiore a 10.
Prod(#data.Fields['ListaNum'],null, '#this>10') |
Esempio 2
Dato un modello di tipo Dati con un campo di tipo lista di dati strutturati, ognuno dei quali contiene un campo denominato Importo, si vuole ottenere il prodotto di tutti i valori riportati nel campo Importo con valore superiore a 10.
Prod(#data.Fields['ListaDatiStrutturati'],'Fields[''Importo'']', 'Fields[''Importo'']>10') |