Gli script trigger: Annullare un evento

Una delle più importanti novità della versione 10 di FileMaker Pro sono stati gli Script Trigger. Uno script trigger è uno script che viene eseguito allo scatenarsi di un evento. Fino alla versione 10 gli unici eventi che si potevano gestire erano: il click di un pulsante, l’apertura e la chiusura di un file. Ora il programmatore tramite il meccanismo degli script trigger può rispondere ad eventi tipo: il caricamento di un formato, la pressione di un tasto, l’uscita da un campo…sicuramente un bel miglioramento atteso da molti sviluppatori.

Alcuni eventi sono cancellabili, cioè lo script trigger scatenato da un evento può annullare l’evento stesso che lo ha generato. Per spiegare questo concetto mi farò aiutare da un semplicissimo esempio:

Quando un utente “esce” da un campo, si scatena l’evento SuUscitaOggetto. Programmando questo evento  è possibile annullare l’evento Uscita dal campo. Per esempio se non è stato correttamente compilato un campo l’utente non potrà spostarsi dal campo stesso…un pò drastica come soluzione ma perfetta per capire come annullare un evento.

Tutti gli eventi “annullabili” sono chiamati Pre-Event, cioè sono eventi il cui script generato viene eseguito prima dell’evento stesso. In questo modo l’evento potrà ancora essere annullato. Fanno parte di questa categoria i seguenti eventi:

SuSalvataggioOggetto, SuSalvataggioRecord, SuRipristinoRecord, SuUscitaModo.

Gli altri eventi si chiamano invece Post-Event, lo script si scatena dopo che l’evento è terminato. Questi eventi non sono annullabili. Quando infatti lo script viene eseguito l’evento è già concluso. Ecco alcuni post-event:

SuCaricamentoRecord, SuEntraraOggetto, SuEntrataModo

Come è possibile capire se un evento è annullabile? Selezionate l’evento nella finestra “Imposta Script Trigger”, se l’evento si può annullare nel parametro risultato vedrete la scritta:

“Se lo script restituisce vero, l’evento originale procede normalmente, altrimenti viene annullato”

Ma torniamo al nostro esempio: voglio implementare un meccanismo per cui un utente non potrà uscire da un campo se non l’avrà compilato. Se il campo risulterà vuoto annullerò l’evento SuUscitaOggetto del campo in questione.

Creiamo prima di tutto lo script. Per comodità userò il DB di esempio Fatture (soluzione pronta per l’uso di FileMaker 11). Utilizzo per l’esempio il campo Cognome

Lego al campo cognome uno script trigger che farà due semplici cose: verificherà la presenza di un valore nel campo, se il campo è compilato non farà nulla, se il campo non è compilato avvertirà l’utente con una finestra di dialogo e annullerà l’evento Uscita dal campo.

Come è possibile annullare un evento?

Per annullare un evento bisogna ritornare al chiamante un risultato FALSO. In FileMaker il valore FALSO equivale al valore zero. Per fare un modo che uno script ritorni un valore si utilizza l’istruzione “Esci dallo script”. Questa istruzione ha un unico parametro: il valore di ritorno.

Ecco quindi lo script:

Niente di più semplice: se lo script ritorna un valore FALSO (=0) l’evento che ha scatenato lo script,  se annullabile, verrà annullato, se invece lo script ritorna un valore VERO (diverso da 0) l’evento si concluderà normalmente.

Come spiegato prima solo gli eventi di tipo Pre-Event sono annullabili come è possibile scoprire nella finestra di FileMaker in cui si impostano gli script trigger:

In modalità struttura del nostro formato selezioniamo il campo Cognome e accediamo alla finestra Imposta Script Trigger:

Assegnamo il nostro script trigger all’evento “SuUscitaOggetto”

E ora proviamo ad uscire dal campo lasciandolo vuoto…non riusciamo!!! L’evento Uscita è stato ANNULLATO

un po’ drastica come soluzione ma rende l’idea di quello che volevo spiegarvi con questo semplice esempio.

Share

FileMaker 11: creare un grafico

Dalla versione 11 di FileMaker PRO è possibile creare i grafici direttamente in FileMaker.

E’ possibile creare i seguenti grafici: a colonne, a barre, a linee, ad area e a torta.

Vediamo come creare un grafico in pochi semplici passi.

Utilizziamo il file Esempi.fp7 presente nella cartella

WIN: c:/programmi/FileMaker/FileMaker Pro 11*/Italiano Extra/Esercitazioni

MAC: [HD]/Applicazioni//FileMaker Pro 11*/Italiano Extra/Esercitazioni

Apriamo il file e posizioniamoci nel formato “Immissione dati

Questo database di esempio contiene i dati anagrafici dei soci di un’associazione viaggi aziendali.

I soci si abbonano inizialmente versando una quota di 200€ e lo stato dell’abbonamento in questo caso ha valore “Nuovo“. Versano poi una quota annuale di 100€ e lo stato dell’abbonamento è in questo caso uguale a “Rinnovo

Creiamo un grafico a colonne che indichi il totale delle quote relative alle associazioni nuove e a quelle rinnovate.

Andiamo in modalità Formato scheda

Nella barra di stato selezioniamo il controllo Grafico

Grafici001

Posizioniamoci sull’area vuota a destra dell’anagrafica soci

Facciamo click con il mouse e trasciniamo disegnando un rettangolo.

Viene creata un’immagine che rappresenta un grafico. A sinistra possiamo definire le opzioni per il grafico

Grafici002

Configuriamo ora il grafico.

  • Nel tipo di grafico selezioniamo Colonne.
  • Nel titolo del grafico mettiamo “Totale quote per tipo abbonamento“. Nel Titolo è possibile anche inserire un campo calcolato.
  • Nell’asse orizzontale (x) mettiamo le categorie dei dati che desideriamo rappresentare. In questo caso il campo “Abbonamento
  • Nell’asse verticale (Y) mettiamo i valori da graficare in questo caso il campo Totale quoteAttenzione perchè il campo Totale quotenon è presente nel formato quindi dobbiamo andarlo a selezionare dalla tabella

Grafici005

Tramite il pulsante + potremmo aggiungere altre serie di dati.

A questo punto dobbiamo decidere quali record graficare. Ci sono tre diverse opzioni che possiamo scegliere:

Grafici004

  • Gruppo trovato corrente: Vengono graficati i dati del found set, cioè dei record “visibili” nel formato.nel nostro caso tutti i record
  • Record corrente: viene graficato solo il record corrente
  • Record correlati: è possibile rappresentare i dati presenti in una tabella correlata. Per esempio tutte le fatture relative ad un cliente.

Nel nostro caso scegliamo la prima opzione.

Dobbiamo anche mettere la spunta su Mostrano i punti per gruppi di record ordinati. In questo modo i record una volta ordinati verranno raggruppati per tipo di abbonamento.

Grafici006

A questo punto facciamo click sul tasto OK.

Per visualizzare il grafico dobbiamo andare in modalità Usa.

Affinchè il grafico sia rappresentato correttamente occorre ordinare sul campo “Abbonamento”

Grafici007

Una volta ordinati i dati, il grafico viene visualizzato in maniera corretta.

Grafici008

Come specificato nelle opzioni del grafico i dati rappresentati sono quelli del gruppo travato corrente, quindi se facciamo una ricerca per esempio sul campo Stato verranno graficati solo i record trovati.

Nell’immagine sotto il grafico per i soci degli Stati Uniti:

Grafici010

Le impostazioni del grafico possono essere modificate in qualsiasi momento tornando in modalità scheda e facendo doppio click sul grafico.

Tramite il pulsante “Formattazione grafico” è possibile impostare il layout del grafico.

Share

FileMaker: la funzione Autovalutazione

In questi giorni sto tenendo un corso di preparazione alla certificazione di FileMaker 10. Leggendo il FileMaker Training Series al modulo 5 ho trovato un esempio carino della funzione Autovalutazione. La funzione Autovalutazione (Self in inglese) restituisce il contenuto dell’oggetto in cui viene definito il calcolo. Fa parte delle funzioni logiche. A volte può succedere quando inseriamo un valore in un campo di digitare inavvertitamente degli spazi all’inizio o alla fine del valore che stiamo inserendo. Combinando la funzione Autovalutazione con la funzione Refila possiamo automaticamente eliminare questi spazi superflui. La funzione Refila è una funzione di testo che preso in input una stringa la restituisce senza spazi iniziali e finali. Per ogni campo in cui vogliamo togliere gli spazi superflui, nelle opzioni campo inseriamo in “Valore calcolato” l’espressione:

Refila(Autovalutazione)

Togliamo l’opzione “Non sostituire il valore esistente per il campo (se esiste)”


A questo punto tramite un qualsiasi formato che contiene il campo inseriamo un valore inserendo degli spazi all’inizio del campo. Il valore sarà sostituito automaticamente con lo stesso valore senza spazi.
Il bello della funzione Autovalutazione è che non è legata a nessun nome specifico di campo, quindi possiamo tranquillamente copiare la nostra espressioneRefila(Autovalutzione) dove ci serve senza modificare nulla.

Share