In sintesi
Vediamo ora il sistema di gestione delle proprietà calcolate del documento.
Nota: questo video corso è stato realizzato con la versione 4 di Instant Developer. Anche se i contenuti sono ancora attuali e sono utili per imparare ad utilizzare Instant Developer, alcune affermazioni sono di fatto superate. Per i dettagli e le ultime novità sulle funzionalità illustrate vi rimandiamo alla sezione di reference che viene tenuta aggiornata giornalmente.
Quando abbiamo parlato dei pannelli, abbiamo visto che nella master o lookup query è possibile aggiungere delle espressioni di tipo costante. Se il pannello fosse su database, allora quelle colonne darebbero luogo a dalle colonne unbound, se invece il pannello è su un documento queste colonne vengono usate per referenziare delle named property del documento. Una named property è una proprietà calcolata a runtime che il documendo può decidere o meno di supportare, è quindi un altro modo per chiedere al documento un informazione passandogli una stringa. Vediamo le funzioni di documento relative alle named property. Con la funzione Get Named Property Definition è possibile chiedere al documento se supporta una certa proprietà per nome. Il documento chiama subito il relativo evento e dobbiamo essere noi a definire le caratteristiche di questa named property, in particolare il datatype e l'UI name. E' poi possibile chiedere o impostare il valore di una named property con queste funzioni che chiamano i relativi eventi.
Se noi passiamo al pannello una colonna costante che non è una named property supportata dal documento, allora verrà mostrata come campo costante in modo da creare un bottone relativo alla riga. Aggiungiamo ad esempio la costante PROVA al pannello ordini e vediamo cosa succede. Vogliamo adesso implementare un pannello multiselezione. Aggiungiamo una costante SELE al pannello e gli diamo come lista valori binary values e usiamo un visual style check box.
Ora implementiamo gli eventi per il controllo delle named property sul documento ordine e intercettiamo la property SELE. Durante la lettura e la scrittura della named property, utilizziamo la proprietà SELECTED del documento per memorizzare lo stato della riga. Proviamo l'applicazione.
Notiamo infine che sebbene le named property possano essere usare come un modo per memorizzare le proprietà del documento esse non partecipano alla maggior parte dei meccanismi di gestione del framework. Ad esempio modificando una named property non necessariamente il documento va in stato modificato: questo avviene solo se all'interno dell'evento di Set Named Property viene modificata una proprietà pubblica da codice, oppure se viene impostata esplicitamente la proprietà Updated del documento. Le named property possono essere quindi immaginate come proprietà transient, proprietà cioè che rappresentano uno stato temporaneo del documento.