Scopo
Cerca nella gerarchia degli oggetti un "padre" dell'oggetto passato come parametro e ne ritorna il puntatore. Viene risalita la catena dei padri dell'oggetto specificato fino a che non ne venga trovato uno che soddisfi i criteri impostati. Può essere usata per esempio per risalire al database che contiene un certo campo o risalire all'applicazione che contiene un certo pannello.
Sintassi
//
IDPadre := INDE.GetParentObject(id oggetto, tipo, maschera tipo, numero livelli,
incluso me, incluse cartelle)
Argomenti
| ID Oggetto | Puntatore dell'oggetto di cui cercare un padre. Solitamente il puntatore ad un oggetto viene recuperato tramite una delle seguenti funzioni: GetNextObject, GetObjectByID, GetObjectByCode, GetObjectByName, GetParentObject, GetPropObject. |
| Tipo | Tipo di cui deve essere l'oggetto padre. 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. |
| Numero Livelli | Livelli di paternità fino a cui si vuole risalire; se impostato a ZERO ci si ferma all'oggetto stesso, se impostato a UNO si risalirà fino al padre di primo livello e così via. Il valore di default è 9999, ossia tutti i livelli fino al progetto. |
| Incluso me | Impostare a VERO se l'oggetto stesso deve essere incluso nella ricerca. |
| Incluse cartelle | Impostare a VERO se le cartelle devono essere incluse nella ricerca. |
Valore di ritorno
Viene ritornato il puntatore dell'oggetto padre trovato. Se nessun padre soddisfa i criteri specificati viene ritornato ZERO.
Note
- Se il puntatore passato come parametro ID Oggetto non corrisponde ad alcun oggetto nel progetto aperto, allora verrà generata un'eccezione.
- Chiamando questa funzione senza specificare alcun parametro opzionale, verrà tornato il padre diretto dell'oggetto passato come parametro.
Esempio di codice
{
int ObjID = 0 // Identificativo dell'oggetto
int ObjType = 0 // Tipo di oggetto
//
// Passo al prossimo oggetto
ObjID := tw.GetNextObject()
if ObjID = ZERO
{
break
}
//
// Leggo il tipo dell'oggetto
ObjType := INDE.GetObjectType(ObjID)
//
// Se è una tabella o un campo (non importata)
if (ObjType = Tabella AND INDE.TestFlag(ObjID, Importato) = False)
OR (ObjType = Campo Tabella AND INDE.TestFlag(INDE.GetParentObject(
ObjID, Tabella, ??, ??, ??, ??), Importato) = False)
{
this.IndividuaParole(INDE.GetPropString(ObjID, Nome, ??), True)
}
}
In questo esempio di codice, contenuto nella procedura Importa del progetto Gestione Glossario, si risale fino alla tabella che contiene un certo campo per verificare se la tabella è modificabile.
Ultima modifica: 23/03/2021 / Validità: da 7.1.3300
funzione