Valore di default |
E' possibile assegnare al campo valori predefiniti (Autoincremento, valori numerici o stringhe generiche), o che derivano da operazioni svolte su altri campi della tabella (Calcolo, Calcolo SQL) sulla base della tipologia del campo stesso:
Valori predefiniti in relazione alla tipologia del campo
Il valore viene calcolato o ricalcolato ogni volta che si aggiorna il Database attraverso la MDBaseView (entrando in modifica e poi premendo il pulsante salva verranno ricalcolati i valori del record corrente). Esiste la possibilità di aggiornare tutti i campi calcolati di una classe attraverso il comando Ricalcolo records presente nella Toolbar MDB-Utilità.
Dimensioni geometriche
Questo gruppo di campi calcolati sono relativi alle caratteristiche geometriche o alla posizione degli oggetti grafici che costituiscono una classe:
Larghezza (<W>)
Altezza (<H>)
Profondità (<D>)
Posizione X (<X>)
Posizione Y (<Y>)
Posizione Z (<Z>)
Rotazione (<ROT>)
Scala X (<XSC>)
Scala Y (<YSC>)
Scala Z (<ZSC>) Vari
Autoincremento (<INC>)
Questo valore viene normalmente utilizzato per i campi chiave. E' possibile aggiungere un prefisso e/o un postfisso: digitando, ad esempio, AM<INC>Z, il risultato sarà: AM001Z, AM002Z, AM003Z, ecc.
Nome del blocco (<BLK>)
Riempie il campo con il nome del blocco (o dei blocchi) che caratterizza una classe puntuale.
Calcolato (<CAL>)
Si utilizza per fare operazioni semplici sulla classe corrente.
Esempio:
si supponga di avere i seguenti campi 'Perimetro','Altezza', 'PrezzoManoDopera'; possiamo avere un campo calcolato che in automatico calcoli il costo (Il prezzo della mano d'opera ipuò indicare il costo dell'imbianchino + il materiale al metro e non sarà un campo ma un valore fisso e/o una costante) :
Calcolato SQL (<CALSQL>)
Si possono costruire campi calcolati molto complessi utilizzando espressioni tipiche del linguaggio SQL (Structured Query Language):
NB: Statements e Functions sono solo un aiuto alle creazione di una stringa SQL formalmente corretta, funzioni ed istruzioni variano in base al tipo di database correlato, quelle inserite "funzionano" con tutti i DB che è possibile collegare.
Esempi
Si suppongano 3 tabelle:
•Tabella A - GAS Tubazione •Tabella B - Stradario •Tabella C - Lookup del campo circoscrizione della stradario
Nella tabella A in un campo nuovo desidero copiare la descrizione di un lookup (tabella C) della tabella B:
Questa è la stringa da inserire nella casella Espressione:
Select DESCRIZIONE from (SELECT [$TP_Stradario_Circoscrizione].DESCRIZIONE AS DESCRIZIONE, TP_Stradario.CIRCOSCR, TP_Stradario.COD_LUOGOP, TP_Stradario.ID_LUOGO FROM TP_Stradario LEFT OUTER JOIN [$TP_Stradario_Circoscrizione] ON TP_Stradario.CIRCOSCR = [$TP_Stradario_Circoscrizione].CODICE)T1 where '[-COD_LUOGOP]' = COD_LUOGOP and '[-ID_LUOGO]' = ID_LUOGO
Select Campo DESCRIZIONE della tabella di lookup from (SELECT [nome tabella di lookup].DESCRIZIONE AS DESCRIZIONE, Nome Tabella B .Nome Campo a cui è collegato il lookup, TP_Stradario.COD_LUOGOP, TP_Stradario.ID_LUOGO (campi chieve di collegamento tra tabelle dati T abella B ) FROM Nome Tabella B LEFT OUTER JOIN [$Nome Tabella C] ON Nome Tabella B .Nome Campo a cui è collegato il lookup= [$$Nome Tabella C].$Nome Campo Codice della tabella C)T1 where '[Nome Campo di collegamento tra tabelle A e B della tabella A]' = Nome Campo di collegamento tra tabelle A e B della tabella B and se le tabella hanno + campi chiave ripetere il testo dopo where
Valutatore di espressioni SQL:
La sringa sql inserita verrà 'analizzata' e modificata secondo i seguenti parametri:
Tutti i campi tra parentesi [] verranno sostituiti con il valore che quel campo assume nel record corrente. Se il campo in questione è un lookup il meno (-) dentro le parentesi quadre vuol dire di prendere il codice altrimenti prende la descrizione.
Esempi di campi calcolati
|