Scopo
Questa funzione effettua una ricerca tra i documenti contenuti nella collection restituendo la posizione del primo documento che corrisponde a quello fornito. Vengono confrontate tutte le proprietà non nulle del documento fornito come parametro alla funzione confrontandole con le corrispondenti proprietà dei documenti contenuti nella collection. La ricerca termina quando viene trovato un documento che abbia le proprietà uguali alle corrispondenti proprietà non nulle del parametro.
Sintassi
int pos := Collection.FindDocument(documento)
Argomenti
Documento | E' il documento che viene utilizzato per effettuare la ricerca. Tutte le proprietà valorizzate di questo documento vengono confrontate con le corrispondenti proprietà dei documenti della collection alla ricerca del primo che corrisponde. |
Valore di ritorno
Viene restituito un intero corrispondente alla posizione del primo documento trovato all'interno della collection. Se non viene trovato nessun documento viene restituito il valore 0.
Esempio di codice
// ****************************************************************************
// Evento notificato dal pannello dopo aver recuperato i dati della master query
// ****************************************************************************
event Prodotti.Prodotto.AfterFind(
int Command // Questo argomento è stato introdotto a partire dalla versi...
)
{
IDCollection prodotti of Prodotto := Prodotto.Collection
//
Ricerco le bevande sospese
{
Prodotto Bevande := New()
//
Bevande.Idcategoria := ONE
Bevande.Sospeso := True
IDCollection risultato of Prodotto := prodotti.FindDocuments(Bevande)
EsempiMS.DTTLogMessage(FormatMessage(Nella ricerca sono presenti |1
bevande sospese., risultato.Count(), ??, ??, ??, ??), ??, ??)
}
//
Ricerco il prodotto Aniseed Syrup
{
Prodotto AniseedSyrup := New()
//
AniseedSyrup.Idprodotto := C3
int pos := prodotti.FindDocument(AniseedSyrup)
if pos > ZERO
{
EsempiMS.DTTLogMessage(FormatMessage(
Il prodotto Aniseed Syrup è il |1° della lista., pos, ??, ??, ??, ??)
, ??, ??)
}
else
{
EsempiMS.DTTLogMessage(Il prodotto Aniseed Syrup non è presente
nella lista., ??, ??)
}
}
}
// Evento notificato dal pannello dopo aver recuperato i dati della master query
// ****************************************************************************
event Prodotti.Prodotto.AfterFind(
int Command // Questo argomento è stato introdotto a partire dalla versi...
)
{
IDCollection prodotti of Prodotto := Prodotto.Collection
//
Ricerco le bevande sospese
{
Prodotto Bevande := New()
//
Bevande.Idcategoria := ONE
Bevande.Sospeso := True
IDCollection risultato of Prodotto := prodotti.FindDocuments(Bevande)
EsempiMS.DTTLogMessage(FormatMessage(Nella ricerca sono presenti |1
bevande sospese., risultato.Count(), ??, ??, ??, ??), ??, ??)
}
//
Ricerco il prodotto Aniseed Syrup
{
Prodotto AniseedSyrup := New()
//
AniseedSyrup.Idprodotto := C3
int pos := prodotti.FindDocument(AniseedSyrup)
if pos > ZERO
{
EsempiMS.DTTLogMessage(FormatMessage(
Il prodotto Aniseed Syrup è il |1° della lista., pos, ??, ??, ??, ??)
, ??, ??)
}
else
{
EsempiMS.DTTLogMessage(Il prodotto Aniseed Syrup non è presente
nella lista., ??, ??)
}
}
}
- Il confronto tra le proprietà dei documenti viene effettuato controllando che il loro valore sia uguale. Non vengono gestiti criteri di ricerca QBE.
Ultima modifica: 10/01/2023 / Validità: da 8.0.3560