Scopo
Attacca una collection di documenti al pannello. Dalla versione 6.9 è possibile attaccare la collection anche in modalità Master.
Sintassi
Pannello.SetCollection(collection, master)
Argomenti
Collection | E' la collection da attaccare al pannello. |
Master | Parametro opzionale booleano con valore di default false. Se impostato a True permette di attaccare la collection al pannello in modalità Master. |
Esempio di codice
// ***************************************
// Fired when a document node is activated
// ***************************************
event EsploratoreCategorie.Albero.OnActivateDoc(
IDDocument Document // Source document that has been activated
inout boolean Cancel // Set to True to cancel further processing
)
{
// Sblocco il pannello (se è vuoto si blocca...)
Prodotto.Locked := False
//
// Se nell'albero ho cliccato su un prodotto...
if Prodotto.IsMyInstance(Document)
{
// Lo imposto nel pannello come master, così le modifiche
// potranno essere salvate nel DB.
Prodotto.SetDocument(Document, True)
//
// Vado in dettaglio
Prodotto.Layout := Form
}
else // Allora è una cstegoria
{
Categoria c = null //
//
// Prendo la categoria
c := Categoria.Cast(Document)
//
// Metto i prodotti nel pannello
Prodotto.SetCollection(c.Prodotti)
//
// Torno in lista
Prodotto.Layout := List
}
}
// Fired when a document node is activated
// ***************************************
event EsploratoreCategorie.Albero.OnActivateDoc(
IDDocument Document // Source document that has been activated
inout boolean Cancel // Set to True to cancel further processing
)
{
// Sblocco il pannello (se è vuoto si blocca...)
Prodotto.Locked := False
//
// Se nell'albero ho cliccato su un prodotto...
if Prodotto.IsMyInstance(Document)
{
// Lo imposto nel pannello come master, così le modifiche
// potranno essere salvate nel DB.
Prodotto.SetDocument(Document, True)
//
// Vado in dettaglio
Prodotto.Layout := Form
}
else // Allora è una cstegoria
{
Categoria c = null //
//
// Prendo la categoria
c := Categoria.Cast(Document)
//
// Metto i prodotti nel pannello
Prodotto.SetCollection(c.Prodotti)
//
// Torno in lista
Prodotto.Layout := List
}
}
- La collection deve derivare dalla libreria IDCollection e deve contenere documenti dello stesso tipo su cui è stato costruito il pannello a compile time, altrimenti possono avvenire dei malfunzionamenti.
- Attaccando una collection al pannello vengono impostate le proprietà Locked a true e Lockable a false, e viene automaticamente portato in stato Data. A seconda delle esigenze applicative potrebbe quindi essere necessario impostare la proprietà Locked a false per poter modificare i documenti della collection.
- Se si attacca la collection in modalità Master, allora il pannello potrà comandare il salvataggio sul database quando l'utente preme il relativo bottone. Eventualmente è possibile riattivare la proprietà Lockable del pannello che si disabilita a causa della chiamata alla SetCollection.
- Se si attacca la collection in modalità Master, allora il pannello permetterà anche la ricerca. Eventualmente è possibile disattivare tale funzionalità tramite la procedura CanSelect del pannello.
- Se quando si utilizza questa procedura la collection è ordinata e il pannello no, al pannello viene applicato lo stesso ordinamento posseduto dalla collection.
- Il parametro OpzioniMaster è stato inserito in versione 6.9.
Ultima modifica: 22/09/2021 / Validità: da 8.0.3560