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

Vedi anche

Per riportare un dato personalizzato dentro un documento generato da un modello, serve il suo segnaposto: Campi nei modelli documento.

Numeri e memo

TipoSintassiEffetto
float;N in fondo Numero di decimali, da 0 a 4. Senza indicazione sono 2. Il risultato è sempre arrotondato.
integerHTS Hide Thousand Separator: nasconde il separatore delle migliaia.
memoun 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:

PresentazioneSintassiNote
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:

CampoValore
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)…

Limite

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:

  1. Gli ID tra parentesi quadre. [135]-[152] sottrae il campo 152 dal campo 135.
  2. Le parentesi tonde per la priorità. 9*5+10 fa 55; 9*(5+10) fa 135.
  3. 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.
  4. I combo entrano con la forma nome/valore. Se il combo [13] vale (Alto,10);(Medio,5);(Basso,1), con “Medio” selezionato [13]*2 dà 10.
  5. I decimali come per i float: [13]/7;3 mostra il risultato con 3 decimali.
  6. 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.

Perché un calcolo non torna

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.

Schede in sola lettura

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.

Se non vedi gli ID dei campi

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>

I text sono testo

Vengono salvati come stringhe: se ti servono numeri da sommare o analizzare, usa float o integer.

Prima parte — la maschera

CarattereSignificato
>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 · lLettera obbligatoria · facoltativa
A · aAlfanumerico obbligatorio · facoltativo
C · cCarattere qualsiasi obbligatorio · facoltativo
0 · 9Cifra 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
altroOgni 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

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