Scopo
Questa procedura viene utilizzata dai pannelli DO per eseguire le procedure di Query By Example in cui l'utente inserisce i valori che vuole cercare nei campi del pannello corrispondenti alle proprietà del documento.
Questa procedura può essere utilizzata da Visual Code per effettuare caricamenti di collection di documenti che soddisfano particolari criteri senza dover esplicitare le query nel codice.
Sintassi
Documento.LoadCollectionByExample(collection, [usa qbe], [numeri livelli], [whereclause])
Argomenti
Collection | E' l'oggetto IDCollection in cui devono essere memorizzati i documenti trovati nel database. |
Usa QBE | Parametro opzionale booleano con valore di default falso. Se impostato a True i valori delle proprietà dell'oggetto verranno interpretati secondo la logica QBE, altrimenti verranno utilizzati come filtri di uguaglianza. |
Numero Livelli | Parametro opzionale intero con valore di default zero. Indica quanti livelli di sotto-documenti devono essere caricati dal database. |
WhereClause | Where clause opzionale da utilizzare per il caricamento dei figli. |
Esempio di codice
// *************************************
// Trova i prodotto che cominciano per C
// *************************************
public void Prodotti.BottoneTrova()
{
Prodotto p = new() // Un oggetto prodotto
IDCollection c = new() // La collection da attaccare al pannello
//
// Resetto lo stato di p (in effetti lo avevo appena creato, ma se fosse stato globale lo avrei
// dovuto fare per forza)
p.Clear()
//
// Imposto un criterio di filtro QBE sul nome del prodotto: tutti i prodotti che iniziano per C
p.NomeProdotto := QBE C
//
// Carico la collection e la associo al pannello
p.LoadCollectionByExample(c, True, ZERO)
Prodotto.Collection := c
}
// Trova i prodotto che cominciano per C
// *************************************
public void Prodotti.BottoneTrova()
{
Prodotto p = new() // Un oggetto prodotto
IDCollection c = new() // La collection da attaccare al pannello
//
// Resetto lo stato di p (in effetti lo avevo appena creato, ma se fosse stato globale lo avrei
// dovuto fare per forza)
p.Clear()
//
// Imposto un criterio di filtro QBE sul nome del prodotto: tutti i prodotti che iniziano per C
p.NomeProdotto := QBE C
//
// Carico la collection e la associo al pannello
p.LoadCollectionByExample(c, True, ZERO)
Prodotto.Collection := c
}
- Se il parametro Usa QBE è True è possibile indicare i criteri di ricerca con la stessa logica che si utilizza all'interno delle ricerche QBE dei pannelli. Può essere necessario allora inserire delle stringhe all'interno di campi non stringa, ad esempio la stringa "10:50" in un campo numerico per impostare un criterio di filtro per l'intervallo [10,50] del campo. Per fare ciò è possibile utilizzare la funzione Convert per evitare la segnalazione di Type Mismatch nell'espressione di assegnazione.
Ultima modifica: 14/10/2022 / Validità: da 6.5.2680