Scopo
Cerca un oggetto in base al nome e ne ritorna il puntatore.
È possibile anche ricercare per DBCode con la funzione GetObjectByCode e per GUID con la funzione GetObjectByID oppure crearsi un proprio algoritmo di ricerca utilizzando un TreeWalker.
Sintassi
int IDOggetto = 0 // Puntatore dell'oggetto trovato
//
IDOggetto := INDE.GetObjectByName(id oggetto radice, nome, tipo, maschera tipo)
//
IDOggetto := INDE.GetObjectByName(id oggetto radice, nome, tipo, maschera tipo)
Argomenti
ID Oggetto Radice | Puntatore dell'oggetto in cui cercare. Solitamente il puntatore ad un oggetto viene recuperato tramite una delle seguenti funzioni: GetNextObject, GetObjectByID, GetObjectByCode, GetObjectByName, GetParentObject, GetPropObject. |
Nome | Nome dell'oggetto da cercare. |
Tipo | Tipo dell'oggetto che si vuole recuperare. L'elenco dei possibili tipi è contenuto nella lista valori Tipi Oggetto. Il valore predefinito è 0 ossia qualsiasi tipo. In questo parametro è anche possibile esplicitare un "modello" di oggetto, che ne rappresenta un sottotipo, e una "versione", che rappresenta un ulteriore specificazione di tipo. |
Maschera Tipo | Parametro che indica quali parti del parametro Tipo verranno considerate; i possibili valori sono contenuti nella lista valori Tipi Maschera. Il valore predefinito è "Tipo" ovvero si considera solo il tipo di oggetto e non il modello e la versione. |
Valore di ritorno
Viene ritornato il puntatore del primo oggetto che viene trovato con il nome 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
...
//
// Se è valorizzato il Codice
if DBCode <> Empty String
...
//
// Se è valorizzato il nome
if Nome <> Empty String
{
int objID = 0 //
//
// Cerco l'oggetto per Nome
objID := EsempiMS.INDE.GetObjectByName(prjID, Nome, ??, ??)
//
if objID > ZERO
{
OggettoBase obj = new() //
//
// Lo carico
if obj.LoadFromINDE(objID)
{
Collection.Add(obj)
}
}
}
//
// 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
...
//
// Se è valorizzato il Codice
if DBCode <> Empty String
...
//
// Se è valorizzato il nome
if Nome <> Empty String
{
int objID = 0 //
//
// Cerco l'oggetto per Nome
objID := EsempiMS.INDE.GetObjectByName(prjID, Nome, ??, ??)
//
if objID > ZERO
{
OggettoBase obj = new() //
//
// Lo carico
if obj.LoadFromINDE(objID)
{
Collection.Add(obj)
}
}
}
//
// Se è valorizzato il tipo
if Tipo > ZERO
...
}
- Il parametro Maschera Tipo è da utilizzare nel caso in cui si voglia effettuare una ricerca più raffinata specificando anche un modello o una versione. Per esempio se si vuole ricercare tutte gli statement di tipo Update occorre impostare il parametro Tipo alla somma delle costanti "Statement" e "Update" e come Maschera Tipo alla costante "Tipo + modello".
- Se il puntatore passato come parametro ID Oggetto Radice non corrisponde ad alcun oggetto nel progetto aperto, allora verrà generata un'eccezione.
Ultima modifica: 23/03/2021 / Validità: da 7.1.3300