Qui parliamo di Software Gestionale

La funzione Dichiara(): peccato non usarla!


Con Filemaker non c’è bisogno del supercomputer Cray-1, del 1978

Quante funzioni ha FM e quante ne usiamo?

Filemaker nel corso degli anni e con i vari aggiornamenti ha continuato a aggiungere funzioni su funzioni a quelle disponibili. Quando si lavora ad un progetto quelle maggiormente usate sono per la maggior parte sempre le stesse. Quando serve qualcosa di particolare si fa una ricerca fra quelle disponibili, e se non troviamo quello che ci serve allora possiamo rivolgerci ad un plugin o a una funzione Custom, di cui esistono librerie sterminate per ogni possibile scopo non contemplato fra quelle già disponibili.

Ma c’è anche un altro tipo di funzione, che non sarebbe indispensabile ma che rende la vita, in determinate situazioni, molto più semplice. Una di queste, secondo molti sviluppatori esperti di FM la più potente e utile in assoluto, è Let, in italiano Dichiara().

Qual’è il suo utilizzo, la sua validità? Quando si deve sviluppare un calcolo complesso, la modalità che FM ci mette a disposizione è quella di impostare i vari calcoli dalla parte centrale via via verso i più esterni. Supponiamo di avere la riga della fattura e vogliamo calcolare direttamente il totale scontato e ivato.

Questi sono i campi in questione

Il totaleRiga1 è ottenuto con il metodo tradizionale, il totaleRiga2 con la funzione Modifica e come si vede portano ovviamente allo stesso risultato, anche se l’impostazione del calcolo è ben diversa.

Questo è il calcolo del campo totaleRiga1, sviluppato appunto con il sistema tradizionale:

La funzione Dichiara() serve a semplificare i calcoli

Con Dichiara() ecco come si presenta il calcolo del campo totaleRiga2:

La prima cosa che si nota è la leggibilità: i vari passaggi sono a cascata e non uno dentro l’altro, motivo, questo, per cui a volte l’intervenire su un calcolo complesso risulta veramente difficile sia per modificare che per debuggare.

L’altro innegabile vantaggio è che il calcolo lo si può spezzettare logicamente, come se facessimo una serie di campi con i vari risultati intermedi in modo da verificare passo passo il suo procedere, cosa che in effetti possiamo verificare anche con Dichiara() con un accorgimento che vedremo in seguito.

Nella pratica come funziona

Per cominciare a usare la funzione dobbiamo prima di tutto togliere alcuni caratteri che FM gentilmente aggiunge, ovvero le parentesi graffe e i puntini. In pratica var1, var2 etc indicano le variabili che calcoliamo in sequenza. Calcolo è il risultato finale che può essere una variabile o anche un ulteriore calcolo fatto utilizzando le variabili dichiarate precedentemente. Per la sua flessibilità preferisco sempre mettere una variabile, anche se non è sempre così.

In pratica:

La prima riga è come FM ci presenta la funzione. La seconda funzione, epurata dagli elementi aggiunti, è quando abbiamo una sola variabile, e in questo caso anche le parentesi quadre non vanno lasciate; nella terza funzione possiamo avere dalle 2 a quante ne servono di variabili; dobbiamo quindi lasciare le parentesi quadre. Le parentesi graffe indicano i pezzi da togliere o da lasciare nei due casi, i tre puntini indicano che le variabili possono essere più di due.

Le variabili possono essere impostate da campi, variabili $ già dichiarate nello script e anche $$, dichiarate precedentemente.

Come si può notare ho usato la stessa variabile imp a cascata che mano a mano assume i valori in sequenza, ma se ci serve debuggare con il Visualizzatore Dati il procedere dei calcoli occorre dare nomi diversi alle singole variabili:

in questo modo se copiamo e incolliamo la nostra espressione nel Visualizzatore Dati, con un intervento sulla dichiarazione dei campi (a cui manca la tabella di riferimento, dato che il visualizzatore non lavora in un contesto definito come invece fa un campo calcolato) e aggiungendo una lista finale, abbiamo sotto controllo anche tutti i risultati di passaggio dei nostri record.

Un altro vantaggio di Dichiara() è quando nel calcolo abbiamo un dato calcolato, il contenuto di un campo, una funzione Get() o altro che viene richiamato più volte. In questo caso impostiamo una variabile, che viene calcolata una sola volta, che poi può essere usata quante volte si vuole senza appesantire il tutto. A livello di impiego del processore usare una variabile è sempre il modo meno impegnativo per utilizzare dati.

Le considerazioni finali su Dichiara()

In pratica in ogni campo calcolato e ovviamente anche nelle funzioni Custom si può impiegare Dichiara(). Abituarsi ad utilizzarlo per cose relativamente semplici non è indispensabile ma ci aiuta a impostarlo anche in quelle complesse, dove invece risulta un cambiamento epocale fra il prima ed il dopo. Il flusso logico delle operazioni è evidente e ci permette anche di impostare più ipotesi di calcolo semplicemente giocando con le variabili, cosa che con i calcolati annidati è praticamente impossibile.

In effetti da quando ne ho capito la logica e le possibilità lo uso praticamente sempre.

Cray-1 in manutenzione

Avete domande o commenti?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Privacy Policy

Privacy Policy