Scopo
Questa funzione consente di recuperare il valore attuale di una delle proprietà pubbliche del documento riferenziandola per indice.
Può quindi essere utile per effettuare un ciclo e leggere tutte le proprietà pubbliche del documento, come mostrato nell'esempio online, oppure per leggere il valore di una proprietà trovata tramite la funzione GetPropertyIndex che permette di conoscere l'indice di una proprietà dati i suoi parametri (nome logico, nome fisico, dominio...)
Sintassi
//
valore := Doc.GetProperty(indice proprietà)
Argomenti
Indice Proprietà | E' un numero intero da 1 al numero di proprietà pubbliche del documento e indica quale proprietà deve essere ritornata. Se l'indice è al di fuori dei valori indicati si otterrà un'eccezione. |
Valore di ritorno
Viene ritornato il valore attuale della proprietà pubblica indicata del documento. Questa funzione definisce come valore di ritorno di tipo String, tuttavia il tipo del valore ritornato dipende dal tipo di proprietà referenziata: se ad esempio si richiede una proprietà intera, verrà ritornato un valore intero.
Esempio di codice
// Analizza il documento e carica le proprietà
// *******************************************
public void Ispettore.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àOggetto
//
// 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àOggetto
set NomeProprietà := nome
set ValoreProprietà := valore
set ValoreOriginale := vorg
set IndiceProprietà := np
}
//
// Prossima proprietà
np := np + ONE
}
//
Mostro la proprietà che implementa il "concetto" di data iniziale
{
int dataidx = 0 // L'indice della proprietà DATA INIZIALE
//
dataidx := Doc.GetPropertyIndex(DO_DATAINIZIALE, ??, ??, ??, ??)
//
if dataidx > ZERO
{
ProprietàOggetto.LabelDataIniziale.Caption := FormatMessage(MSG Iniziale, ToString(
Doc.GetProperty(dataidx)), ??, ??, ??, ??)
}
else //
{
ProprietàOggetto.LabelDataIniziale.Caption := MSG Iniziale Supportata
}
}
}
- Questa funzione può essere utilizzata per implementare dei servizi documentali trasversali, potendo trattare i documenti senza conoscerne il tipo. Nell'esempio di codice e nell'esempio online, nota come viene recuperata la proprietà del documento che corrisponde al concetto di "Data Iniziale".
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680