English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • ID Document
  • Inizializzazione

Copy From

procedura copia link

Scopo

Questa procedura copia un documento da un altro della stessa classe e può essere usata per ottenere una copia identica di due documenti in memoria.

Questa procedura può essere utile negli algoritmi per disaccoppiare le modifiche fatte in una copia del documento da quelle fatte sull'altra.

Sintassi

Documento.CopyFrom(documento originale, copy private, copy object)

Argomenti

Documento Originale Il documento da cui copiare i dati. Attenzione: verrà copiato l'intero documento, anche i sotto-documento contenuti nelle Collection.
Copy Private Parametro opzionale booleano con valore di default falso. Se valorizzato a True indica se occorre copiare anche le proprietà private.
Copy Object Parametro opzionale booleano con valore di default falso. Se valorizzato a True indica se occorre copiare anche le proprietà di tipo oggetto.

Esempio di codice

// ****************************
// Called when a form is loaded
// ****************************

event Corriere2.Load()
{
  Corriere c1 = new() // Il corriere da editare
  Corriere c2 = new() // Il corriere copiato
  // 
  // Carico il corriere 1 dal DB

  c1.Idcorriere := ONE
  c1.LoadFromDB(??)
  // 
  // Copio nel corriere 2 lo stesso contenuto di 1

  c2.CopyFrom(c1)
  // 
  // Attacco i vari documenti ai pannelli

  Corriere.Document := c1
  Corriere1.Document := c1
  Corriere2.Document := c2
}
  • Se Documento Originale non è della stessa classe di Documento, allora si potrebbero ottenere delle eccezioni. Se tuttavia i documenti, anche appartenendo a classi diverse, hanno una struttura dati compatibile, cioè hanno lo stesso numero di proprietà e collection pubbliche, allora i dati verranno copiati dall'uno all'altro facendo corrispondere le proprietà in modo posizionale: la prima con la prima, la seconda con la seconda ecc.
  • Solo la parte caricata e presente in memoria di Documento Originale verrà copiata.
  • Se il documento attuale conteneva sotto-documenti nelle proprie collection, essi vengono cancellati dalla memoria e rimpiazzati dalle copie dei sotto-documenti di documento originale.
  • A differenza della funzione Duplicate, nessuna modifica alle proprietà Primary Key, Doc ID o Foreign Key viene effettuata, ne vengono notificati eventi ai documenti.
  • Attualmente vengono copiati gli stati di Updated, Inserted e Deleted, ma NON vengono copiati i valori originali delle proprietà, gli errori ed i warning attaccati al documento originale e lo stato di Loaded del documento e delle collection.
  • Attenzione: il metodo CopyFrom NON copia proprietà di tipo oggetto (pubbliche o private) e NON copia proprietà private di qualunque tipo esse siano. In versione 22.0 sono stati aggiunti i parametri CopyPrivate e CopyObject che permettono di indicare al sistema se effettuare o meno la copia delle proprietà private e/o di tipo oggetto.

Ultima modifica: 09/02/2024 / Validità: da 6.5.2680

Vedi Anche

  • Loaded (proprietà)
  • Duplicate (funzione)
  • Deleted (proprietà)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum