Dati personalizzati: la sintassi del campo Valore
Quando si configura un dato personalizzato, il campo Valore non contiene un valore: contiene le istruzioni su come quel campo si comporta — quanti decimali, quali voci nella tendina, quale formula calcolare, quale maschera di input imporre.
In breve
- È usato dai tipi float, integer, memo, combo, Calc (float) e text.
- Per i combo è obbligatorio: è lì che si elencano le voci.
- Per i Calc contiene la formula, con gli ID dei campi tra parentesi quadre.
Per riportare un dato personalizzato dentro un documento generato da un modello, serve il suo segnaposto: Campi nei modelli documento.
Numeri e memo
| Tipo | Sintassi | Effetto |
|---|---|---|
| float | ;N in fondo |
Numero di decimali, da 0 a 4. Senza indicazione sono 2. Il risultato è sempre arrotondato. |
| integer | HTS |
Hide Thousand Separator: nasconde il separatore delle migliaia. |
| memo | un numero | Altezza del campo in righe visibili. Minimo e default: 3. |
Combo: tendine, radio e caselle
Per i combo il campo Valore è obbligatorio: contiene le voci separate da punto e virgola —
per esempio Alto;Medio;Basso.
Un prefisso tra parentesi quadre cambia il modo in cui le voci vengono presentate:
| Presentazione | Sintassi | Note |
|---|---|---|
| Tendina (default) | [Type=Combobox,Columns=4]Buon giorno;Guten Morgen;Good morning |
Type=Combobox è superfluo: è già il comportamento predefinito. |
| Radio (scelta unica) | [Type=Radiogroup,Columns=2]Sì;No;Forse;Non applicabile |
Le voci si dispongono su tante colonne quante ne indichi. |
| Caselle (scelta multipla) | [Type=CheckGroup,Columns=10]Uno;Due;Tre;… |
I valori scelti si salvano in un solo campo, separati da ;. |
Combo che dipendono da un altro combo
Un combo “figlio” può mostrare solo le voci pertinenti alla scelta fatta in un combo “padre”. Funziona con i combo normali e Radiogroup.
Supponendo che il padre abbia ID 277:
| Campo | Valore |
|---|---|
| Padre | [Type=Radiogroup,Columns=3]Europa;Asia;Africa;America |
| Figlio | [Dependson=277,Type=Radiogroup,Columns=4]Italia@0;Francia@0;Spagna@0;Cina@1;Giappone@1;India@1;Algeria@2;Congo@2;Canada@3 |
La sintassi @N lega la voce del figlio alla voce del padre, contando da 0:
Cina@1 lega “Cina” al secondo elemento del padre, cioè “Asia”.
Anche il figlio accetta la forma nome/valore:
[Dependson=277,type=Radiogroup,columns=4](Italia@0,12);(Francia@0,87);(Cina@1,16)…
I combo collegati non sono supportati nei dati personalizzati dei Riferimenti.
Calc (float): i campi calcolati
Nel Valore di un campo Calc si scrive la formula, con gli operatori +
- * /. Le regole sono sei:
- Gli ID tra parentesi quadre.
[135]-[152]sottrae il campo 152 dal campo 135. - Le parentesi tonde per la priorità.
9*5+10fa 55;9*(5+10)fa 135. - Si usano float e integer. Fanno eccezione i campi data, utilizzabili solo nelle
sottrazioni:
([12]-[10]) * [15], con 12 e 10 date e 15 un float. - I combo entrano con la forma nome/valore. Se il combo
[13]vale(Alto,10);(Medio,5);(Basso,1), con “Medio” selezionato[13]*2dà 10. - I decimali come per i float:
[13]/7;3mostra il risultato con 3 decimali. - Campi vuoti: aggiungendo
[nullAsZero=false]in un punto qualsiasi del Valore, se anche un solo membro della formula è vuoto il risultato resta vuoto invece di valere zero.[nullAsZero=true]non serve: è già il comportamento predefinito. Funziona anche nei Calc dei Riferimenti.
La formula viene validata al salvataggio e segnala gli errori di sintassi.
Tutti i dati coinvolti devono essere visibili sia nella scheda Dati personalizzati del modulo, sia nella maschera di chiusura della disposizione. Un campo nascosto non entra nel conto.
In una scheda che non puoi modificare, per esempio un evento chiuso, un campo calcolato che non è mai stato salvato mostra comunque il risultato della formula, calcolato dai valori presenti. Un valore già salvato viene mostrato così com’è. Se la formula usa un campo che non vedi, il risultato resta vuoto.
In Opzioni → Campi dei dati personalizzati, se la colonna con l’ID non compare, esegui un Reset impostazioni griglia dal menu contestuale.
Text: la maschera di inserimento
Per i campi text il Valore è facoltativo: se c’è, è la maschera che vincola ciò che l’utente può digitare. È fatta di tre parti separate da punto e virgola:
<prima parte>;<seconda parte>;<terza parte>
Vengono salvati come stringhe: se ti servono numeri da sommare o analizzare, usa float o integer.
Prima parte — la maschera
| Carattere | Significato |
|---|---|
> | I caratteri che seguono sono MAIUSCOLI (fino a un eventuale <) |
< | I caratteri che seguono sono minuscoli |
<> | Nessun controllo: come l’utente digita |
\ | Il carattere successivo è fisso, non digitabile. Serve per i caratteri speciali (! > < \ L l A a C c 0 9 # : / _) |
L · l | Lettera obbligatoria · facoltativa |
A · a | Alfanumerico obbligatorio · facoltativo |
C · c | Carattere qualsiasi obbligatorio · facoltativo |
0 · 9 | Cifra obbligatoria · facoltativa |
# | Cifra, + o -, facoltativo |
: | Separatore di ore/minuti/secondi, secondo le impostazioni di Windows |
/ | Separatore di data, secondo le impostazioni di Windows |
_ | Spazio: se l’utente digita, il cursore salta oltre |
| altro | Ogni altro carattere è fisso e non digitabile |
Seconda parte — che cosa si salva
0 salva nel database solo ciò che l’utente ha digitato, senza i caratteri fissi.
Qualunque altro carattere (o l’assenza della seconda parte, che è il default) salva la stringa
completa, caratteri fissi inclusi.
Terza parte — il segnaposto
Il carattere con cui vengono mostrate le posizioni ancora da riempire. Il default è _.
Due esempi
| Maschera | Come si legge |
|---|---|
>LL-000-LL;1;_ |
Targa italiana: maiuscole, 2 lettere obbligatorie, trattino fisso, 3 cifre, trattino, 2 lettere.
1 ≠ 0, quindi nel database finisce tutto, trattini compresi. Segnaposto _. |
ID 000;0;_ |
Cartellino: “ID ” fisso più 3 cifre. 0 salva solo le cifre: nelle
consultazioni il dato appare come 345, non come ID 345. |
Dove si configura
In Opzioni → Dati personalizzati, nella sezione Campi del modulo che ti interessa. Il significato dei dati personalizzati per chi li compila è invece in La scheda di un record.