
È molto più facile gestire questi problemi se la modifica del valore di un campo viene direttamente registrata (o "tracciata"). Nelle versioni precedenti di FileMaker, questo poteva essere realizzato utilizzando le finestre di dialogo di immissione, ad esempio facendo clic sul pulsante [OK] e su una Scrittura per registrare il processo. Con le nuove versioni di FileMaker, tutto questo è possibile grazie a Innesco dello script è diventato molto più semplice. Questo articolo mostra come farlo con un file di esempio corrispondente.
I vantaggi della registrazione degli eventi

Mettiamoci al lavoro: cosa serve?
Lo sviluppo di un registro eventi per una soluzione FileMaker esistente può essere realizzato con risorse gestibili. Innanzitutto, è necessario creare una nuova tabella che contenga tutti i campi rilevanti per la gestione degli eventi. Nel file di esempio, la tabella si chiama "Registro eventi".
Ogni evento registrato corrisponde a un record di dati in questa tabella, la cui chiave primaria automatica è chiamata _pk_Ereignis_ID. La chiave di riferimento a cui si riferisce l'evento viene salvata nel campo chiave _fk_Fremdschlüssel. Ad esempio, se un campo di un database clienti viene modificato, questo campo viene riempito con la chiave primaria del database clienti. La chiave che si trova in questo campo viene inserita nel campo Chiave esterna scritto.
Per le modifiche ai campi, questa tabella contiene anche i campi Campo_contenuto_prima e Campo_contenuto_dopoche contengono il contenuto del campo prima e dopo la modifica apportata.
Sono sufficienti due script.
Per registrare un evento, sono ora necessari due script oltre alla tabella: uno script viene utilizzato per la voce pura della tabella Registro eventi e deve essere richiamato con parametri di script, mentre per la registrazione delle modifiche ai campi è necessario un altro script, che viene richiamato tramite un trigger di script sul rispettivo campo.
Inserimento di un evento
Esaminiamo innanzitutto lo script di inserimento puro [ts.event log], che accetta i seguenti parametri di script:
- Chiave esterna
- File
- Origine (script/campo, ecc.)
- Stato (OK, errore)
- Tabella
- Testo
- Tipo di transazione
- Tipo di chiave esterna
- Contenuto del campo prima
- Contenuto del campo dopo
Lo script è strutturato in modo semplice e scrive i valori contenuti nei parametri dello script prima nelle variabili e poi in un nuovo record di dati nella tabella del registro eventi.
Questo script può essere richiamato da qualsiasi altro script che deve inserire voci nel registro eventi. Nella soluzione di esempio, è stata realizzata anche la registrazione degli eventi di campo, che questo script richiama.
Script [ts.record_field_event]
Il copione ts.record_field_event è impostato per ogni campo come trigger di script [OnObjectEnter] e [OnObjectExit]. Può accettare una scheda di un controllo a schede come parametro di script opzionale se il campo si trova in un'area di un controllo a schede. Ciò è necessario affinché lo script possa passare alla scheda corretta dopo la creazione del record di dati di log. Controllo del registro sul layout di destinazione.
Lo script controlla innanzitutto se la variabile di sistema $$ campo è riempita o vuota. Se la variabile di sistema è vuota, l'utente ha inserito un campo e lo script riempie la variabile di sistema. $$ campo con il nome del campo attivo e $$ campo_contenuto_precedente con il contenuto del campo prima della modifica. Lo script viene quindi chiuso, poiché non deve fare nient'altro quando si inserisce un campo.
Se la variabile di sistema $$ campo è già compilato, l'utente potrebbe aver modificato il contenuto del campo e sta lasciando il campo. Lo script ora controlla se il contenuto del campo è stato modificato e crea un record di dati nel registro degli eventi se è stata apportata una modifica, richiamando il pedice ts.event log. Se il campo si trova in un controllo a schede e il nome della scheda è stato fornito come parametro di script, lo script passa ora alla scheda specificata, altrimenti passerebbe al controllo a schede predefinito dopo l'inserimento. Infine, lo script cancella nuovamente le variabili 1TP4rider, $$ campo, $$ campo_contenuto_precedente e $$campo_contenuto_dopoe il gioco può ricominciare dall'inizio, perché la variabile di sistema $$field è di nuovo vuota.
Assegnare campi con trigger di script
Nell'ultima fase, i campi desiderati devono essere dotati di trigger di script, in modo che l'inserimento nel registro eventi avvenga quando un campo viene modificato. Per ogni campo devono essere impostati due trigger di script, ognuno dei quali richiama lo stesso script:
- ConOggettoIngresso ["ts.field_event_record"; {parametro: "tab"}].
- ConOggettoEsci ["ts.field_event_record"; {parametro: "tab"}].
Il parametro di script "Tab" è opzionale e viene specificato solo se il campo si trova in un controllo a schede, come nel file di esempio. Viene specificato il nome della tabulazione, che viene utilizzato nel file di script Ispettore nella scheda [Posizione] del programma Nome deve essere specificato.
File di esempio per la registrazione dei valori dei campi
Alla fine di questo articolo è possibile scaricare un file di esempio per FileMaker 12 in cui è stato realizzato il registro eventi con la registrazione dei valori di campo. È possibile utilizzare questo file di esempio come base per il proprio database o per trasferire le funzioni alla propria soluzione FileMaker.
Scarica il file di esempio per FileMaker 12
Come trasferire gli script dal file di esempio alla propria soluzione
Gli script possono essere facilmente trasferiti da una soluzione FileMaker a un'altra tramite gli appunti. È sufficiente aprire la finestra di dialogo Gestire gli scriptSelezionate lo script desiderato con il mouse e copiate lo script negli appunti usando il menu [Modifica - Copia] o la combinazione di tasti [Ctrl/Cmd-C]. Aprite quindi la stessa finestra di dialogo nella soluzione di destinazione e incollate nuovamente lo script precedentemente copiato utilizzando il comando di menu [Modifica - Incolla].
Per trasferire le tabelle dal file di esempio alla propria soluzione
Le tabelle possono essere inserite in una soluzione esistente in diversi modi. Il modo più semplice è importare la tabella utilizzando il pulsante [Importa...] nella finestra di dialogo Gestire il database. Tutte le tabelle da importare dalla soluzione di partenza possono essere selezionate in un dialogo successivo. Questo metodo è quindi particolarmente adatto se si devono importare più tabelle contemporaneamente. Se si deve importare una sola tabella, è possibile farlo anche tramite gli appunti, come uno script. Se si vuole importare una tabella insieme ai suoi dati, è possibile farlo con il comando [File > Importa record > File]. Nel dialogo di importazione, la tabella di destinazione Nuovo tavolo deve essere specificato.
Per trasferire gli elenchi di valori dal file di esempio alla propria soluzione
Gli elenchi di valori possono essere facilmente importati da una soluzione FileMaker a un'altra tramite gli appunti. È sufficiente aprire la finestra di dialogo in [File/File > Gestione > Elenchi valori], selezionare l'elenco valori desiderato e fare clic su [Importa]. Elenco valori con il mouse e copiare l'elenco dei valori negli appunti usando il menu [Modifica - Copia] o la combinazione di tasti [Ctrl/Cmd-C]. Aprite quindi la stessa finestra di dialogo nella soluzione di destinazione e incollate l'elenco dei valori precedentemente copiato utilizzando il comando di menu [Modifica - Incolla].
Come trasferire le proprie funzioni dal file di esempio alla propria soluzione
Cliccare sul pulsante [Importa] nella finestra di dialogo [File > Gestisci > Funzioni personalizzate...] e selezionare il file di esempio. Selezionate le funzioni personalizzate desiderate nella finestra di dialogo seguente e confermate la finestra. Si noti che questa funzione è disponibile solo in FileMaker Pro Advanced, ma non in FileMaker Pro.

Markus Schall sviluppa database personalizzati, interfacce e applicazioni aziendali basate su Claris FileMaker dal 1994. È un partner di Claris, vincitore del premio FMM 2011 e sviluppatore del programma Software ERP gFM-Business. È anche autore di libri e fondatore dell'associazione M. Schall Editore.







Un'ottima cosa, ci ha aiutato molto. Grazie mille per tutto!