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

Get Object By Code

funzione copia link

Scopo

Cerca un oggetto in base al DBCode e ne ritorna il puntatore. E' molto utile per cercare oggetti di database in base al nome fisico.

E' anche possibile ricercare gli oggetti per GUID con la funzione GetObjectByID 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.GetObjectByCode(id oggetto radice, codice, tipo, maschera tipo,
  case sensitive)

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.
Codice Codice 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.
Case Sensitive Imposta a VERO se la ricerca deve essere "Case Sensitive".

Valore di ritorno

Viene ritornato il puntatore del primo oggetto che viene trovato con il codice 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
  {
    int objID = 0 // 
    // 
    // Cerco l'oggetto per Codice

    objID := EsempiMS.INDE.GetObjectByCode(prjID, DBCode, ZERO, -65536,
      False)
    // 
    // Se ne ho trovato almeno uno

    if objID > ZERO
    {
      OggettoBase obj = new() // 
      // 
      // Lo carico

      if obj.LoadFromINDE(objID)
      {
         Collection.Add(obj)
      }
    }
  }
  // 
  // Se è valorizzato il nome

  if Nome <> Empty String
    ...
  // 
  // 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: 18/07/2012 / Validità: da 7.1.3300

Vedi Anche

  • Get Next Object (funzione)
  • Get Object By ID (funzione)
  • Get Object By Name (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