In sintesi
In questa lezione si impara a scrivere codice che gestisce la struttura interna di un documento senza averne una conoscenza precedente.
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.
Una caratteristica molto importante della Document Orientation, chiamata riflessione, è quella di poter scrivere codice che analizza la struttura interna dei documenti senza averne una conoscenza precedente. La struttura dei documenti è descritta dalle classi ID Document Structure, ID Property Definition e ID Collection Definition.
Nella libreria del documento ci sono alcune funzioni dedicate alla riflessione, come il metodo Get Structure che restituisce l'oggetto ID Document Structure che ne descrive la struttura. Queste sono funzioni dedicate alla riflessione che consentono di scrivere e leggere le proprietà del documento senza referenziare direttamente le relative variabili.
Analizziamo la struttura di un documento. La classe ID Document Structure contiene i dati caratteristici del documento, come il tag che rappresenta il nome interno (o nome della classe), o il DB Code che è il nome fisico della tabella del database in cui quel documento è memorizzato. La proprietà UI Name contiene il nome per l'utente di quel documento, mentre la funzione supports ci dice se il documento supporta un certo servizio.
Tramite la funzione Get Property Count e Definition possiamo sapere quante proprietà sono supportate da un documento e leggerne la definizione che viene descritta da un oggetto di tipo ID Property Definition. Questo oggetto ci dice, ad esempio, il DB Code che rappresenta il campo della tabella base che memorizza l'informazione, il concetto rappresentato dall'informazione o la proprietà UI Name che contiene il nome da comunicare all'utente per questa informazione. Tramite le funzioni Get Collection Count e Definition possiamo sapere quali collection sono parte del documento e leggerne la definizione tramite un oggetto di tipo ID Collection Definition, che contiene la corrispondenza fra i campi PK e FK, ed il nome della classe del documento che la collection può contenere.
Come esempio di riflessione, creiamo una videata in grado di far vedere le proprietà di un documento qualunque, creiamo una procedura che apre la videata passando un documento, poi la colleghiamo al pannello ordini, al pannello righe e al pannello sconti. Nella videata creiamo una tabella IMDB con due campi, il nome della proprietà ed il valore. La riempiamo nella procedura di apertura. Colleghiamo il documento alla videata e poi creiamo un pannello sulla tabella IMDB. Proviamo l'applicazione.