Quando si costruisce un modello di modulo con InfoPath, spesso è necessario che alcuni campi si aggiornino automaticamente in base ai dati inseriti dall’utente. Una formula consente di ottenere questo comportamento: si tratta di un insieme di espressioni XPath che combinano valori, funzioni e operatori per restituire un singolo risultato. In questa guida esploreremo come definire formule accessibili sia in InfoPath 2010 sia in InfoPath 2013, come evitare errori comuni e come verificare la correttezza delle espressioni prima della pubblicazione del modulo.
Che cosa sono le formule e come si usano
Una formula in InfoPath è fondamentalmente un’espressione XPath che può contenere costanti, riferimenti a campi del modulo, funzioni predefinite e operatori aritmetici. Le applicazioni tipiche includono il calcolo di importi, la visualizzazione di date, il trasferimento di valori tra campi e l’impostazione di un valore predefinito per un controllo. Le funzioni XPath presenti in InfoPath offrono strumenti per manipolare stringhe, numeri e date; a queste si aggiungono alcune funzioni specifiche di InfoPath per scenari particolari. Pensate a una formula come a una frase composta: ogni sottoespressione contribuisce al risultato finale.
Componenti essenziali di una formula
Ogni formula è costruita con tre elementi principali: valori o riferimenti ai campi del modulo, funzioni che trasformano o aggregano quei valori, e operatori che stabiliscono le operazioni da eseguire. Gli argomenti passati alle funzioni possono essere campi, costanti o altre espressioni. È buona pratica utilizzare nomi di controllo chiari (ad esempio txtQuantity, txtUnitPrice) per rendere l’espressione leggibile. Inoltre, InfoPath supporta le funzioni di XPath 1.0; conoscere quali funzioni sono disponibili aiuta a risolvere situazioni comuni senza ricorrere a soluzioni complesse.
La precedenza degli operatori: regole e impatto sui risultati
Quando in una formula sono presenti più operatori (ad esempio +, -, *, /), InfoPath valuta l’espressione seguendo la precedenza degli operatori. In pratica, i calcoli tra parentesi vengono eseguiti prima, poi le moltiplicazioni e divisioni, e infine addizioni e sottrazioni. Se due operatori hanno la stessa priorità, il motore procede da sinistra verso destra. Comprendere questa gerarchia è fondamentale per ottenere risultati corretti senza sorprese: un ordine diverso delle operazioni può trasformare un calcolo logico in un errore di business.
Esempio pratico con più operatori
Immaginate un modulo per permessi dove si voglia calcolare il costo totale medio: la formula potrebbe moltiplicare le quantità per i rispettivi prezzi e poi dividere per il numero di permessi. Senza parentesi, il risultato dipende dalla precedenza: le moltiplicazioni e le divisioni vengono eseguite prima dell’addizione. Per controllare il flusso dei calcoli si raccomanda di racchiudere le parti che devono essere valutate per prime tra parentesi. In questo modo la formula rimane esplicita e resistente a modifiche future del modulo.
Inserire, verificare e correggere formule in un controllo
Per applicare una formula a un controllo, aprire le proprietà del campo nel progettista di InfoPath, selezionare la scheda Dati e usare l’opzione per inserire la formula. Nella casella di composizione è possibile digitare riferimenti ai campi, operatori aritmetici e chiamare funzioni. Ricordate che se usate l’operatore di divisione (/) è consigliabile lasciare spazi attorno per evitare che venga interpretato come separatore di percorso in XPath. Prima di salvare conviene utilizzare lo strumento di verifica della formula offerto dall’interfaccia per individuare errori di sintassi.
Buone pratiche e risoluzione degli errori
Se una formula genera errori, la finestra di dialogo di InfoPath fornisce dettagli utili: controllate gli argomenti delle funzioni, verificate che i riferimenti ai campi siano corretti e ridigitare la formula può risolvere problemi di battitura. Per prevenire valori mancanti nelle operazioni numeriche, attivate l’opzione considera i valori vuoti come zero nelle impostazioni avanzate del modulo. Infine, testate il modulo in anteprima per osservare il comportamento delle formule con dati reali prima di distribuire il modello agli utenti.

