Scopo
Questa funzione serve per recuperare lo schema del documento come oggetto di tipo IDDocumentStructure. Tramite lo schema del documento è possibile reperire informazioni approfondite sulla sua natura, sulle proprietà che supporta, sui servizi documentali ad esso associati. E' anche possibile modificare le proprietà dello schema, tenendo conto però che l'oggetto schema è statico: ogni modifica influirà sul comportamento dell'intera applicazione web, quindi di tutte le sessioni e non solo su quella che effettua la modifica.
Sintassi
IDDocumentStructure ds = null // Lo schema del documento
//
ds := Documento.GetStructure()
//
ds := Documento.GetStructure()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
Ritorna un oggetto di tipo IDDocumentStructure che rappresenta lo schema del documento.
Esempio di codice
// *******************************************
// Analizza il documento e carica le proprietà
// *******************************************
public void VersioniDO.CaricaProprietà(
IDDocument Doc // Il documento da analizzare
)
{
IDDocumentStructure ds = null // La struttura del documento
int np = 1 // Enumera le proprietà
//
// Cancelliamo il contenuto precedente
delete from ProprietàVersione
//
// Recupero il meta schema dell'oggetto
ds := Doc.GetStructure()
//
// Enumeriamo le proprietà
while np <= ds.GetPropertyCount()
{
IDPropertyDefinition pr = null // La definizione della proprietà np-esima
string nome = "" // Nome della proprietà
string valore = "" // Valore Attuale
string vorg = "" // Valore Originale
//
// Recupero la definizione della proprietà np-esima
pr := ds.GetPropertyDefinition(np)
//
// Prelevo il nome e i valori
nome := pr.UIName
valore := Doc.GetProperty(np)
vorg := Doc.GetOriginalValue(np)
//
// Solo se la proprietà non è temporanea
if NOT(pr.Transient)
{
// Creo la riga di proprietà nel pannello
insert values into ProprietàVersione
set NomeProprietà := nome
set ValoreProprietà := valore
set ValoreOriginale := vorg
set IndiceProprietà := np
}
//
// Prossima proprietà
np := np + ONE
}
}
// Analizza il documento e carica le proprietà
// *******************************************
public void VersioniDO.CaricaProprietà(
IDDocument Doc // Il documento da analizzare
)
{
IDDocumentStructure ds = null // La struttura del documento
int np = 1 // Enumera le proprietà
//
// Cancelliamo il contenuto precedente
delete from ProprietàVersione
//
// Recupero il meta schema dell'oggetto
ds := Doc.GetStructure()
//
// Enumeriamo le proprietà
while np <= ds.GetPropertyCount()
{
IDPropertyDefinition pr = null // La definizione della proprietà np-esima
string nome = "" // Nome della proprietà
string valore = "" // Valore Attuale
string vorg = "" // Valore Originale
//
// Recupero la definizione della proprietà np-esima
pr := ds.GetPropertyDefinition(np)
//
// Prelevo il nome e i valori
nome := pr.UIName
valore := Doc.GetProperty(np)
vorg := Doc.GetOriginalValue(np)
//
// Solo se la proprietà non è temporanea
if NOT(pr.Transient)
{
// Creo la riga di proprietà nel pannello
insert values into ProprietàVersione
set NomeProprietà := nome
set ValoreProprietà := valore
set ValoreOriginale := vorg
set IndiceProprietà := np
}
//
// Prossima proprietà
np := np + ONE
}
}
Attenzione: l'oggetto ritornato è statico: ogni modifica influirà sul comportamento dell'intera applicazione web e non solo sulla sessione che la effettua.
Ultima modifica: 04/01/2022 / Validità: da 6.5.2680