AddToList

<< Fare clic per visualizzazione il sommario >>

Percorso:  Il linguaggio OEL > Esempi pratici >

AddToList

Esempio 1

Esigenza: La nota spese è un documento che rappresenta la domanda di rimborso dei costi sostenuti, per conto dell’azienda, durante trasferte o eventi di rappresentanza. Nel documento nota spese occorre aggiungere programmaticamente una nuova riga di spesa alla lista dei costi sostenuti.

 

Descrizione: In una soluzione Jamio openwork è definito un modello di tipo Dati denominato 'NotaSpese' che contiene un campo 'ElencoSpese' di tipo lista di dato strutturato 'Spesa'. Per aggiungere programmaticamente il contenuto del campo 'Riga elenco spese' di tipo dato strutturato 'Spesa' alla lista 'ElencoSpese'  si deve definire una regola di assegnazione che assegna al campo 'ElencoSpese' il valore dell'intera lista 'ElencoSpese' con in aggiunta il valore del campo 'Riga elenco spese'. La funzione AddToList, inserita con la modalità espressione nella parte destra della regola, permette di aggiungere alla lista 'ElencoSpese' il nuovo elemento.

 

Assegna a ElencoSpese di NotaSpese il valore AddToList(#data.Fields['ElencoSpese'],#data.Fields['Riga elenco spese'])

 

Esempio 2

Esigenza: Creare una lista di stringhe a partire dalla proiezione di una colonna che appartiene ad una tabella.

 

Descrizione: In una soluzione Jamio openwork è definito un modello di processo che contiene al suo interno una regola di business utile a costruire la lista di stringhe 'ProPartecipanti' a partire dalla proiezione di una colonna che appartiene alla tabella 'Partecipanti' inserita in un modello di tipo Dati denominato 'Corso'. Prima del popolamento della lista è riportato un comando Clear applicato alla lista stessa utile a gestire anche il caso di aggiunta di un nuovo elemento alla lista.

 

(#data.Fields['ProPartecipanti'].Clear();#copylist = {|listOut,listIn,index| $index < $listIn.Count ? ((#addtolist = {|list,element| ($list.Add($element); $list)}; #addtolist($listOut,$listIn[$index])); #copylist($listOut, $listIn, $index + 1)) : $listOut}; #copylist(#data.Fields['ProPartecipanti'], #data.Fields['Partecipanti'].!{Fields['ID']}, 0))