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 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.