In sintesi
In questa lezione analizzeremo in dettaglio la libreria dell'oggetto IDCollection.
Nota: questo video corso è stato realizzato con la versione 4 di Instant Developer. Anche se i contenuti sono ancora attuali e sono utili per imparare ad utilizzare Instant Developer, alcune affermazioni sono di fatto superate. Per i dettagli e le ultime novità sulle funzionalità illustrate vi rimandiamo alla sezione di reference che viene tenuta aggiornata giornalmente.
In questa lezione analizzeremo in dettaglio la libreria dell'oggetto IDCollection. Abbiamo visto che una IDCollection serve per contenere una lista di documenti (o parti di documenti). Per creare una IDCollection è sufficiente tirare il documento che essa deve contenere su una form, procedura o altro documento con il tasto CONTROL premuto.
Apriamo le proprietà di una IDCollection. Vediamo che la proprietà CONTENT LIBRARY indica quale tipo di documenti potrà contenere questa IDCollection. Questo è molto importante perché solo così il sistema potrà gestire correttamente questa lista di oggetti. Abbiamo anche visto come è possibile da codice effettuare un ciclo su tutti gli elementi di una IDCollection. E'sufficiente tirare la collection su un blocco della procedura perché venga creato in automatico un ciclo for-each-row. Proviamo ad esempio a ricreare il metodo che calcola l'importo totale dell'ordine. All'interno del ciclo c'è l'istanza del documento che possiamo usare per accedere alle proprietà dell'elemento attuale della collection. Notiamo che su tutte le variabili di tipo documento, possiamo usare il menù contestuale EXPAND per fare apparire tutte le proprietà pubbliche di quel documento in modo da semplificarne l'uso. E' anche possibile usare il comando SHRINK per togliere le referenze non utilizzate.
Vediamo adesso alcuni metodi notevoli nella libreria della collection: innanzitutto il metodo COUNT, con il quale possiamo sapere quanti documenti NON cancellati contiene la IDCollection. Tramite il metodo ADD possiamo aggiungere nuovi documenti, mentre con il metodo ADDREF aggiungiamo elementi per riferimento, quindi essi saranno ancora presenti nelle collection in cui erano prima. Il metodo CLEAR svuota la collection, mentre il metodo REMOVE DELETED toglie solo i documenti in stato cancellato. Con i metodi di navigazione è possibile navigare nella collection a piacimento ed estrarre o trovare documenti, con le funzioni di sorting possiamo ordinare la collection da codice, infine ci sono alcune funzioni analoghe a quelle sui documenti, solo che agiscono su tutti i documenti presenti nella collection.
Per fare un esempio, creaiamo un metodo che duplica 10 volte l'articolo selezionato. Dalla videata articoli, mettiamo un bottone e colleghiamo una procedura, estraiamo l'articolo selezionato nel pannello, prendiamo una collection e predisponiamo un ciclo da 1 a 10. All'interno del ciclo creiamo un nuovo oggetto articolo usando la funzione di duplicazione che è in grado di duplicare interi documenti, ne impostiamo la nuova chiave primaria per evitare duplicazioni, poi lo aggiugiamo alla collection. Notiamo che potevano farlo aggiungere anche alla funzione di duplicazione, perché ha un parametro parentcollection in cui possiamo specificare a quale collection vogliamo che venga aggiunto il documento.
A questo punto non ci resta che salvare la collection ed il gioco è fatto. Proviamo l'applicazione.