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

Do Obj Action

funzione copia link

Scopo

Svolge un azione su un oggetto. Per azione si intende un comando generico o specifico per l'oggetto; ad esempio su un oggetto di tipo Lista Valori si possono effettuare le azioni specifiche Aggiungi Costante e Aggiungi Sottoinsieme e quelle generiche Duplica, Trova dove usato eccetera...

Sintassi

int res = 0
// 
res := INDE.DoObjAction(id oggetto, id azione, id transazione)

Argomenti

ID Oggetto Puntatore dell'oggetto su cui effettuare l'azione
ID Azione Identificativo dell'azione da effettuare; l'elenco delle azioni si trova nella lista valori Tipi Azione
ID Transazione Numero della transazione in cui effettuare l'azione

Valore di ritorno

Viene ritornato un intero corrispondente all'esito dell'azione sull'oggetto; i possibili esiti sono elencati nella lista valori Tipi Risultato Azione.

Esempio di codice

// **************************
// Duplica l'oggetto corrente
// **************************

public void InstantDeveloper.Duplica()
{
  if NOT(Albero.ActiveDocument IS Null Object)
  {
    OggettoBase obj = null   // 
    Transazione trans = null // 
    // 
    // Recupero dall'albero l'oggetto attivo

    obj := OggettoBase.Cast(Albero.ActiveDocument)
    try
    {
      Documento doc = null // 
      // 
      // Apro una transazione

      doc := obj.GetDocument()
      trans := doc.BeginTransaction(FormatMessage(Duplicazione |1 |2, Decode
         (obj.Tipo, TipiOggetto), obj.Nome, ??, ??, ??))
      // 
      // Duplico l'oggetto

      EsempiMS.INDE.DoObjAction(obj.Puntatore, Duplica, trans.ID)
      trans.Commit()
      // 
      // Aggiorno l'albero

      if NOT(obj.Parent IS Null Object) AND OggettoBase.IsMyInstance(obj.
         Parent)
      {
         OggettoBase par = null // 
         // 
         par := OggettoBase.Cast(obj.Parent)
         par.LoadChildrenFromINDE()
      }
    }
    catch
    {
      trans.Rollback()
      EsempiMS.MessageBox(Impossibile Duplicare)
    }
  }
}
  • Se si cerca di effettuare un'azione che non è prevista dall'oggetto viene ritornato il valore Non Riconosciuta.
  • Le azioni possono avere esito bloccante o non bloccante indipendentemente dal buon esito dell'azione percui occorre fare attenzione al valore di ritorno.
  • Le modifiche fatte fuori transazione non cambiano lo stato del documento, cioè se il documento prima della modifica era non modificato dopo la modifica resta tale; quindi in fase di chiusura non verrebbe chiesto all'utente se vuole salvare.
  • In caso di modifica fuori transazione non viene gestito il sistema di Team Working.

Ultima modifica: 28/05/2009 / Validità: da 7.5.3400

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum