English
Instant Developer Foundation Documentazione
  • Estensibilità
  • Libreria
  • INDE Extension
  • Oggetti

Get Object By ID

funzione copia link

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)

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
    ...
}
  • 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

Vedi Anche

  • Get Object By Code (funzione)
  • Get Object By Name (funzione)
  • Get Next Object (funzione)
  • Get Parent Object (funzione)
  • Get Prop Object (funzione)
  • INDE TreeWalker

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum