Scopo
Copia le proprietà di un oggetto in un altro oggetto (tranne il GUID). Questa operazione corrisponde all'operazione di Drag & Drop di un Visual Style su un'altro Visual Style che imposta il secondo Visual Style uguale al primo.
Sintassi
INDE.UpdateObject(id oggetto, id oggetto sorgente, id transazione)
Argomenti
| ID Oggetto | Puntatore dell'oggetto da modificare |
| ID Oggetto Sorgente | Puntatore dell'oggetto da cui leggere i valori |
| ID Transazione | Numero della transazione in cui effettuare la modifica |
Esempio di codice
// ****************************************************************************
// Evento notificato al documento quando l'utente esegue una operazione di drop
// di un documento su questo documento, in un albero con drag & drop attivo
// ****************************************************************************
event OggettoBase.OnDrop(
IDDocument SourceDocument // Documento tirato su questo documento
boolean ShiftKey // Vero se l'utente teneva premuto il tasto Sh...
boolean AltKey // Vero se l'utente teneva premuto il tasto Al...
boolean ControlKey // Vero se l'utente teneva premuto il tasto Co...
inout boolean Cancel // Se lo si imposta a True si impedisce l'esec...
)
{
Transazione trans = null //
//
try
{
Documento doc = null //
OggettoBase obj = null //
//
obj := OggettoBase.Cast(SourceDocument)
doc := obj.GetDocument()
//
// Inizio una nuova transazione
trans := doc.BeginTransaction(FormatMessage(Drop |1 su |2, Nome, obj.
Nome, ??, ??, ??))
//
// Se gli oggetti sono dello stesso tipo
if obj.Tipo = Tipo
{
// Copio le proprietà dell'oggetto tirato nell'oggetto su cui ho tirato
EsempiMS.INDE.UpdateObject(Puntatore, obj.Puntatore, trans.ID)
}
else
{
// Effettuo un D&D tra i due oggetti
EsempiMS.INDE.ObjDrop(Puntatore, obj.Puntatore, If(ShiftKey, Shift
, ZERO) | If(ControlKey, Control, ZERO) | If(AltKey, Alt, ZERO),
trans.ID)
}
//
trans.Commit()
//
// Aggiorno gli oggetti da INDE
this.LoadChildrenFromINDE()
obj := OggettoBase.Cast(obj.Parent)
obj.LoadChildrenFromINDE()
}
catch
{
trans.Rollback()
}
}
// Evento notificato al documento quando l'utente esegue una operazione di drop
// di un documento su questo documento, in un albero con drag & drop attivo
// ****************************************************************************
event OggettoBase.OnDrop(
IDDocument SourceDocument // Documento tirato su questo documento
boolean ShiftKey // Vero se l'utente teneva premuto il tasto Sh...
boolean AltKey // Vero se l'utente teneva premuto il tasto Al...
boolean ControlKey // Vero se l'utente teneva premuto il tasto Co...
inout boolean Cancel // Se lo si imposta a True si impedisce l'esec...
)
{
Transazione trans = null //
//
try
{
Documento doc = null //
OggettoBase obj = null //
//
obj := OggettoBase.Cast(SourceDocument)
doc := obj.GetDocument()
//
// Inizio una nuova transazione
trans := doc.BeginTransaction(FormatMessage(Drop |1 su |2, Nome, obj.
Nome, ??, ??, ??))
//
// Se gli oggetti sono dello stesso tipo
if obj.Tipo = Tipo
{
// Copio le proprietà dell'oggetto tirato nell'oggetto su cui ho tirato
EsempiMS.INDE.UpdateObject(Puntatore, obj.Puntatore, trans.ID)
}
else
{
// Effettuo un D&D tra i due oggetti
EsempiMS.INDE.ObjDrop(Puntatore, obj.Puntatore, If(ShiftKey, Shift
, ZERO) | If(ControlKey, Control, ZERO) | If(AltKey, Alt, ZERO),
trans.ID)
}
//
trans.Commit()
//
// Aggiorno gli oggetti da INDE
this.LoadChildrenFromINDE()
obj := OggettoBase.Cast(obj.Parent)
obj.LoadChildrenFromINDE()
}
catch
{
trans.Rollback()
}
}
- Le modifiche fatte fuori transazione non cambiano lo stato del documento; perciò se il documento era non modificato alla chiusura non verrebbe chiesto all'utente di salvare.
- In caso di modifica fuori transazione il sistema di Team Working non viene attivato.
- Se i puntatori passati come parametri non corrispondono entrambi ad oggetti presenti nel progetto aperto verrà generata un'eccezione.
Ultima modifica: 28/05/2009 / Validità: da 7.5.3400
procedura