Scopo
Questa procedura permette di caricare una collection di documenti a partire da un recordset.
Sintassi
Documento.LoadCollectionFromRecordset(collection, recordset, numero livelli)
Argomenti
Collection | Oggetto IDCollection da caricare. La collection non viene vuotata prima del caricamento. |
Recordset | L'oggetto Recordset - che deve essere aperto - da cui caricare i dati. |
Numero Livelli | Parametro opzionale intero con valore di default zero che rappresenta il numero di livelli di sotto-documenti che devono essere caricati. |
Esempio di codice
// ********************************
// Carica i 5 prodotti più ordinati
// ********************************
public void Prodotti.BottoneRS()
{
Recordset rs = new() // This variable contains the recordset returned by the linked query
IDCollection c = new() // Collection da caricare
Prodotto p = new() // Prodotto da usare per caricare la collection
//
// Dico che voglio al max 5 records
NorthwindDB.MaxRows := C5
//
// Carico i prodotti
select into recordset (rs)
Prodotti.Id as IdProdotto(IDPRODOTTO)
Prodotti.NomeProdotto as NomeProdotto(NOMEPRODOTTO)
Prodotti.Idfornitore as IdfornitoreProdotto(IDFORNPRODOT)
Prodotti.Idcategoria as IdcategoriaProdotto(IDCATEPRODOT)
Prodotti.QuantitaPerUnita as QuantitaPerUnitaProdotto(QUAPERUNIPRO)
Prodotti.PrezzoUnitario as PrezzoUnitarioProdotto(PREZUNITPROD)
Prodotti.Scorte as ScorteProdotto(SCORTEPRODOT)
Prodotti.QuantitaOrdinata as QuantitaOrdinataProdotto(QUANORDIPROD)
Prodotti.LivelloDiRiordino as LivelloDiRiordinoProdotto(LIVEDIRIOPRO)
Prodotti.Sospeso as SospesoProdotto(SOSPESPRODOT)
Count() as Count()(COUNT1)
from
Prodotti // Master Table
DettagliOrdini // Joined with Prodotti using FK ProdottoDettagli_ordini
order by
Count()
//
// Carico la collection dal RS
p.LoadCollectionFromRecordset(
Collection := c
Recordset := rs
ChildrenLevel := ZERO
)
//
// E la attacco al pannello
Prodotto.Collection := c
}
// Carica i 5 prodotti più ordinati
// ********************************
public void Prodotti.BottoneRS()
{
Recordset rs = new() // This variable contains the recordset returned by the linked query
IDCollection c = new() // Collection da caricare
Prodotto p = new() // Prodotto da usare per caricare la collection
//
// Dico che voglio al max 5 records
NorthwindDB.MaxRows := C5
//
// Carico i prodotti
select into recordset (rs)
Prodotti.Id as IdProdotto(IDPRODOTTO)
Prodotti.NomeProdotto as NomeProdotto(NOMEPRODOTTO)
Prodotti.Idfornitore as IdfornitoreProdotto(IDFORNPRODOT)
Prodotti.Idcategoria as IdcategoriaProdotto(IDCATEPRODOT)
Prodotti.QuantitaPerUnita as QuantitaPerUnitaProdotto(QUAPERUNIPRO)
Prodotti.PrezzoUnitario as PrezzoUnitarioProdotto(PREZUNITPROD)
Prodotti.Scorte as ScorteProdotto(SCORTEPRODOT)
Prodotti.QuantitaOrdinata as QuantitaOrdinataProdotto(QUANORDIPROD)
Prodotti.LivelloDiRiordino as LivelloDiRiordinoProdotto(LIVEDIRIOPRO)
Prodotti.Sospeso as SospesoProdotto(SOSPESPRODOT)
Count() as Count()(COUNT1)
from
Prodotti // Master Table
DettagliOrdini // Joined with Prodotti using FK ProdottoDettagli_ordini
order by
Count()
//
// Carico la collection dal RS
p.LoadCollectionFromRecordset(
Collection := c
Recordset := rs
ChildrenLevel := ZERO
)
//
// E la attacco al pannello
Prodotto.Collection := c
}
- Per ottenere il corretto caricamento delle proprietà è necessario che i nomi fisici (DB Code) delle colonne del recordset siano corrispondenti ai nomi fisici (DB Code) delle proprietà del documento da caricare, oppure, in seconda battuta, ai nomi fisici dei campi del database relativi alle proprietà del documento da caricare.
- Il recordset può essere aperto, ad esempio, con una istruzione di tipo Select Into Recordset oppure con la funzione SQLQuery dell'oggetto database.
- E' possibile associare tramite D&D una proprietà del documento con la colonna della query Select Into Recordset in modo da garantire automaticamente che i nomi corrispondano. E' anche possibile tirare il documento sulla query per associare in automatico le proprietà.
Ultima modifica: 20/09/2021 / Validità: da 6.5.2680