> ## Documentation Index
> Fetch the complete documentation index at: https://academy.fiber.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Come creare una formula personalizzata

### **Crea una formula personalizzata**

Le formule personalizzate ti permettono di calcolare automaticamente un valore a partire dai dati già inseriti nel modulo (es. peso, altezza, età).

Come funziona:

* Per richiamare un campo del modulo scrivi il suo identificativo tra parentesi graffe: `{identificativo}`
* Se il campo contiene testo (non numerico), metti anche i doppi apici: `"{identificativo}"`
* Puoi inserire i riferimenti manualmente oppure selezionarli dal menu apposito
* Per fare calcoli tra campi numerici usa i normali operatori: "+ - \* /"
* Per unire testi o caratteri usa l'operatore "+"

> ***Esempio pratico: calcolo dell'IMC***
>
> L'Indice di Massa Corporea si calcola così: *IMC = peso (kg) / altezza² (m²)*
>
> Nel modulo hai già i campi peso `({bodyweight})` e altezza `({bodyheight}`, in cm).
>
> La formula da inserire è: `{bodyweight} / (({bodyheight}/100) * ({bodyheight}/100))`
>
> Perché /100? Perché l'altezza è salvata in centimetri e va convertita in metri. Le parentesi tonde servono a indicare a Fiber l'ordine in cui eseguire i calcoli.

### **Formule condizionali**

Le formule condizionali permettono di selezionare quale formula attivare in base ad una o più condizioni logiche. 

* Puoi richiamare i campi del modulo con lo stesso sistema delle formule
* Per impostare una condizione, confronta due valori usando un operatore logico: \< > \<= >= == (uguale) != (diverso)
* Pioi aggiungere più condizioni alla stessa formula
* Se usi più condizioni, scegli: **AND** → la formula si attiva solo se *tutte* le condizioni sono vere; **OR** → la formula si attiva se *almeno una* condizione è vera

> ***Esempio pratico: classificazione dell'IMC***
>
> Vogliamo che Fiber mostri automaticamente la categoria di peso (es. Sottopeso, Normale, Sovrappeso…) in base al valore dell'IMC calcolato.
>
> Seleziona il tipo di campo **Formula condizionale** e aggiungi una formula per ogni categoria. Ecco come impostare la categoria *Sottopeso* (IMC tra 16 e 18.5):
>
> |                     |                                       |
> | :------------------ | :------------------------------------ |
> | 1ª condizione       | `{body_bmi} > 16`                     |
> | 2ª condizione       | `{body_bmi} <= 18.5`                  |
> | Operatore           | **AND** (entrambe devono essere vere) |
> | Formula (risultato) | "Sottopeso"                           |
>
> Ripeti lo stesso procedimento per ogni categoria, modificando i valori soglia e il testo da visualizzare.

NB: Tutte le formule e le condizioni inserite vengono eseguite in linguaggio JavaScript. Questo significa che, oltre alle operazioni di base, puoi utilizzare funzioni matematiche e logiche più avanzate per gestire anche i calcoli più complessi.
