Scopo
Questa funzione ritorna una stringa che identifica completamente questo documento. La stringa è composta concatenando in modo opportuno il nome della classe del documento ed i valori della proprietà identificative dello stesso. Il valore ritornato potrà essere usato successivamente per ricreare e ricaricare il documento senza conoscerne il tipo.
Sintassi
string dna := Document.GetDNA()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
La stringa ritornata identifica il documento, concatenendo il nome della classe e il valore delle proprietà identificative del documento stesso. La lunghezza della stringa è quindi funzione di questi fattori.
Esempio di codice
// **********************************************************************************
// Evento notificato dal book quando l'utente esegue un operazione di drop su di esso
// **********************************************************************************
event Desktop.LibroDesktop.OnGenericDrop(
string DragInfo //
inout boolean Cancel //
int Button //
float X //
float Y //
int XB //
int YB //
int BoxID //
)
{
// Mi è stato tirato sopra un documento...
if NOT(ActivedDocument IS Null Object)
{
// Sopra al desktop, creo icona
if BoxID = LibroDesktop.SfondoDesktop.Me()
{
IDDocument d := ActivedDocument // Actived Document
IDDocumentStructure ds := d.GetStructure() // d.Get Structure ()
string icon := Replace(ds.Icon, C16, C32) // Replace (ds.Icon, C16, C32)
int newx := X - Offset Icona
int newy := Y - Offset Icona
//
newx := newx - newx % Larghezza griglia X + Offset Bordo
newy := newy - newy % Larghezza griglia Y + Offset Bordo
//
// Creo l'icona nel desktop
insert values into Desktop
set Descrizione := d.GetName(ZERO)
set Tooltip := d.GetName(ONE)
set Immagine := icon
set IDImpiegato := Webtop.DatiSessione.IDImpiegato
set PosY := newy
set PosX := newx
set DocDNA := d.GetDNA()
//
this.Aggiorna()
}
}
//
// Sto spostando un icona...
if ToInteger(DragInfo) > ZERO
...
}
// Evento notificato dal book quando l'utente esegue un operazione di drop su di esso
// **********************************************************************************
event Desktop.LibroDesktop.OnGenericDrop(
string DragInfo //
inout boolean Cancel //
int Button //
float X //
float Y //
int XB //
int YB //
int BoxID //
)
{
// Mi è stato tirato sopra un documento...
if NOT(ActivedDocument IS Null Object)
{
// Sopra al desktop, creo icona
if BoxID = LibroDesktop.SfondoDesktop.Me()
{
IDDocument d := ActivedDocument // Actived Document
IDDocumentStructure ds := d.GetStructure() // d.Get Structure ()
string icon := Replace(ds.Icon, C16, C32) // Replace (ds.Icon, C16, C32)
int newx := X - Offset Icona
int newy := Y - Offset Icona
//
newx := newx - newx % Larghezza griglia X + Offset Bordo
newy := newy - newy % Larghezza griglia Y + Offset Bordo
//
// Creo l'icona nel desktop
insert values into Desktop
set Descrizione := d.GetName(ZERO)
set Tooltip := d.GetName(ONE)
set Immagine := icon
set IDImpiegato := Webtop.DatiSessione.IDImpiegato
set PosY := newy
set PosX := newx
set DocDNA := d.GetDNA()
//
this.Aggiorna()
}
}
//
// Sto spostando un icona...
if ToInteger(DragInfo) > ZERO
...
}
- Se nelle versioni successive del progetto viene modificato il nome della classe o il numero delle proprietà identificative, le stringhe DNA generate dalle precedenti versioni dell'applicazione non funzioneranno più.
-
A partire dalla versione 10.1 se il documento è contenuto in un componente la stringa restituita dalla funzione contiene anche il nome della libreria (DLL/JAR) del componente.
Se la libreria del componente è contenuta nella directory standard in cui normalmente risiedono i componenti (Bin per DLL C#, WEB-INF/lib per JAR Java) il DNA sarà nel seguente formato:[NOME_LIBRERIA]|[NOME_CLASSE],[PK]
Se, la libreria è contenuta all'interno della directory dell'applicazione il DNA sarà nel seguente formato:Bin\[NOME_LIBRERIA]|[NOME_CLASSE],[PK] per C# WEB-INF/lib/[NOME_LIBRERIA]|[NOME_CLASSE],[PK] per Java
Se, la libreria è contenuta altrove il DNA sarà nel seguente formato:[PERCORSO_COMPLETO_LIBRERIA]|[NOME_CLASSE],[PK]
Ultima modifica: 23/03/2021 / Validità: da 8.5.3800