Aggiungere proprietà agli oggetti IDDocument
copia linkTrascrizione
Vi avevo lasciato con un esercizio da effettuare nel progetto, cioè la compilazione dell’intera struttura database e della relativa struttura documentale; eccola qua analizziamola un attimo insieme.
Ho implementato la tabella Servizi e Servizi Appartamenti: la prima definisce l’anagrafica dei Servizi, la seconda invece abbina i servizi agli appartamenti.
Abbiamo poi la tabella dei Prezzi relativi ad ogni appartamento con la possibilità di definire prezzi diversi a seconda del periodo. In ultimo la tabella delle Prenotazioni e i Servizi Prenotazione, cioè i servizi richiesti dai clienti, a proposito dei Clienti c'è una anagrafica molto scarna, ma per noi sufficiente, ed è rappresentata dalla tabella Utenti.
Poi guardando il componente beh troviamo la trasformazione di tutte le tabelle in documenti, e la definizione di una struttura documentale. Per esempio il documento Appartamento contiene le collection Servizi Appartamenti, Media, Prezzi.
Il documento Prenotazione contiene la collection Prenotazioni Servizi; potremmo ampliare ancora la struttura documentale dicendo ogni Utente avrà le proprie prenotazioni, quindi sotto al documento Utente possiamo avere la collection delle Prenotazioni: trasciniamo con CTRL+SHIFT Prenotazione su Utente ed ecco la collection.
Vi ricordo che sono definibili le collection in presenza di foreign key sul database o comunque campi che consentano una relazione tra tabelle.
Ora analizziamo un aspetto sul documento Prezzo: il documento contiene due proprietà di tipo Date Valido Dal – Valido Al; vorrei poter avere una proprietà che indichi se il record è valido per oggi, cioè il range di definizione del prezzo include oggi? Oppure è un prezzo futuro o passato.
Questa proprietà non è memorizzabile sul database in quanto Oggi cambia tutti i giorni: allora potrei prevedere di creare una proprietà in memoria non derivata direttamente da un campo database: una proprietà di questo tipo non verrà mai valorizzata in automatico ma dovremo preoccuparci, via codice, di assegnare un valore al bisogno.
Come si definisce una proprietà documentale non legata al database? Usando la voce di menu contestuale Aggiungi Variabile Globale sul nome del documento: posizioniamoci nell’albero su Prezzo, tasto destro Aggiungi Variabile Globale.
Assegniamo il nome Valida Oggi alla proprietà, come Tipo di dati Integer, Dominio Binary Values (perché sarà un valore True False), poi passiamo ai flag, abbiamo 3 flag da impostare e precisamente il flag Pubblica (indica che la proprietà sarà utilizzabile anche all’esterno del documento), poi il flag Visibile (indica che la proprietà potrà essere utilizzata in interfaccia) e importante il flag Transient. C Con il termine Transient indichiamo una proprietà la cui modifica non comporta una modifica dello stato del documento; cioè quando viene modificata la proprietà, il framework non segna il documento come da salvare sul database; in quanto la proprietà Transient sul database non esiste.
Confermiamo la scheda e troviamo il nuovo campo Valida Oggi presente nel documento; ovviamente quanto varrebbe il campo in esecuzione? Beh per ora varrebbe sempre NULL in quanto non abbiamo scritto codice per valorizzarlo, vedremo successivamente dove e come valorizzare questa proprietà.
Ho implementato la tabella Servizi e Servizi Appartamenti: la prima definisce l’anagrafica dei Servizi, la seconda invece abbina i servizi agli appartamenti.
Abbiamo poi la tabella dei Prezzi relativi ad ogni appartamento con la possibilità di definire prezzi diversi a seconda del periodo. In ultimo la tabella delle Prenotazioni e i Servizi Prenotazione, cioè i servizi richiesti dai clienti, a proposito dei Clienti c'è una anagrafica molto scarna, ma per noi sufficiente, ed è rappresentata dalla tabella Utenti.
Poi guardando il componente beh troviamo la trasformazione di tutte le tabelle in documenti, e la definizione di una struttura documentale. Per esempio il documento Appartamento contiene le collection Servizi Appartamenti, Media, Prezzi.
Il documento Prenotazione contiene la collection Prenotazioni Servizi; potremmo ampliare ancora la struttura documentale dicendo ogni Utente avrà le proprie prenotazioni, quindi sotto al documento Utente possiamo avere la collection delle Prenotazioni: trasciniamo con CTRL+SHIFT Prenotazione su Utente ed ecco la collection.
Vi ricordo che sono definibili le collection in presenza di foreign key sul database o comunque campi che consentano una relazione tra tabelle.
Ora analizziamo un aspetto sul documento Prezzo: il documento contiene due proprietà di tipo Date Valido Dal – Valido Al; vorrei poter avere una proprietà che indichi se il record è valido per oggi, cioè il range di definizione del prezzo include oggi? Oppure è un prezzo futuro o passato.
Questa proprietà non è memorizzabile sul database in quanto Oggi cambia tutti i giorni: allora potrei prevedere di creare una proprietà in memoria non derivata direttamente da un campo database: una proprietà di questo tipo non verrà mai valorizzata in automatico ma dovremo preoccuparci, via codice, di assegnare un valore al bisogno.
Come si definisce una proprietà documentale non legata al database? Usando la voce di menu contestuale Aggiungi Variabile Globale sul nome del documento: posizioniamoci nell’albero su Prezzo, tasto destro Aggiungi Variabile Globale.
Assegniamo il nome Valida Oggi alla proprietà, come Tipo di dati Integer, Dominio Binary Values (perché sarà un valore True False), poi passiamo ai flag, abbiamo 3 flag da impostare e precisamente il flag Pubblica (indica che la proprietà sarà utilizzabile anche all’esterno del documento), poi il flag Visibile (indica che la proprietà potrà essere utilizzata in interfaccia) e importante il flag Transient. C Con il termine Transient indichiamo una proprietà la cui modifica non comporta una modifica dello stato del documento; cioè quando viene modificata la proprietà, il framework non segna il documento come da salvare sul database; in quanto la proprietà Transient sul database non esiste.
Confermiamo la scheda e troviamo il nuovo campo Valida Oggi presente nel documento; ovviamente quanto varrebbe il campo in esecuzione? Beh per ora varrebbe sempre NULL in quanto non abbiamo scritto codice per valorizzarlo, vedremo successivamente dove e come valorizzare questa proprietà.
Ultima modifica: 23/03/2021 / Validità: da 20.0.7800