Scopo
Cerca un oggetto in base al GUID e ne ritorna il puntatore. Questo tipo di ricerca è uitile quando si conosce il GUID dell'oggetto che si vuole recuperare nel progetto.
È possibile ricercare anche per codice con la funzione GetObjectByCode e per nome con la funzione GetObjectByName oppure crearsi un proprio algoritmo di ricerca utilizzando un TreeWalker.
Sintassi
int IDOggetto = 0 // Puntatore dell'oggetto trovato
//
IDOggetto := INDE.GetObjectByID(id oggetto radice, guid, usa mappa)
//
IDOggetto := INDE.GetObjectByID(id oggetto radice, guid, usa mappa)
Argomenti
ID Oggetto Radice | Puntatore dell'oggetto da cui iniziare la ricerca: l'oggetto desiderato verrà cercato all'interno dell'oggetto radice. Solitamente il puntatore ad un oggetto viene recuperato tramite una delle seguenti funzioni: GetNextObject, GetObjectByID, GetObjectByCode, GetObjectByName, GetParentObject, GetPropObject. |
GUID | Parametro stringa che specifica il GUID dell'oggetto da cercare. Il GUID deve essere passato nella forma standard (ad esempio: 861D4754-786A-4F91-BEF0-C2BE75CDDA9C) |
Usa Mappa | Impostare a VERO se la ricerca deve utilizzare la mappa degli oggetti creata precedentemente tramite la funzione PrepareMap al fine di migliorare le prestazioni della ricerca |
Valore di ritorno
Viene ritornato il puntatore dell'oggetto che ha il GUID specificato. Se non è stato trovato nessun oggetto viene ritornato ZERO.
Esempio di codice
// ****************************************************************************
// Evento notificato al documento prima di caricare una collection del suo tipo
// ****************************************************************************
event OggettoBase.BeforeLoadCollection(
IDDocument Parent // E' il documento padre che ha chiesto il caric...
IDCollection Collection // E' la collection da caricare.
inout boolean Skip // Parametro di output booleano. Se impostato a ...
)
{
int prjID = 0 // Puntatore del progetto
//
// Recupero il puntatore del progetto
prjID := GetTag(Project ID)
//
// Se è valorizzato il GUID
if GUID <> Empty String
{
int objID = 0 //
//
// Cerco l'oggetto per GUID
objID := EsempiMS.INDE.GetObjectByID(prjID, GUID, InstantDeveloper.
EsisteMappa)
//
// Se ne ho trovato almeno uno
if objID > ZERO
{
OggettoBase obj = new() //
//
// Lo carico
if obj.LoadFromINDE(objID)
{
Collection.Add(obj)
}
}
}
//
// Se è valorizzato il Codice
if DBCode <> Empty String
...
//
// Se è valorizzato il nome
if Nome <> Empty String
...
//
// Se è valorizzato il tipo
if Tipo > ZERO
...
}
// Evento notificato al documento prima di caricare una collection del suo tipo
// ****************************************************************************
event OggettoBase.BeforeLoadCollection(
IDDocument Parent // E' il documento padre che ha chiesto il caric...
IDCollection Collection // E' la collection da caricare.
inout boolean Skip // Parametro di output booleano. Se impostato a ...
)
{
int prjID = 0 // Puntatore del progetto
//
// Recupero il puntatore del progetto
prjID := GetTag(Project ID)
//
// Se è valorizzato il GUID
if GUID <> Empty String
{
int objID = 0 //
//
// Cerco l'oggetto per GUID
objID := EsempiMS.INDE.GetObjectByID(prjID, GUID, InstantDeveloper.
EsisteMappa)
//
// Se ne ho trovato almeno uno
if objID > ZERO
{
OggettoBase obj = new() //
//
// Lo carico
if obj.LoadFromINDE(objID)
{
Collection.Add(obj)
}
}
}
//
// Se è valorizzato il Codice
if DBCode <> Empty String
...
//
// Se è valorizzato il nome
if Nome <> Empty String
...
//
// Se è valorizzato il tipo
if Tipo > ZERO
...
}
- Se il puntatore passato come parametro ID Oggetto Radice non corrisponde ad alcun oggetto nel progetto aperto, allora verrà generata un'eccezione.
Ultima modifica: 24/03/2021 / Validità: da 7.1.3300