Storico modifiche su un campo

Come utilizzare i campi. Differenze tra campi calcolati, testo, numero, multipli, contenitori.

Moderatore: Moderatori

Rispondi
paba00
Messaggi: 1
Iscritto il: domenica 3 novembre 2019, 17:20
Versione FileMaker: 18
Sistema operativo: MacOS

Storico modifiche su un campo

Messaggio da paba00 » domenica 3 novembre 2019, 17:34

Buon pomeriggio,

vorrei creare uno storico delle modifiche effettuate su un CAMPO , salvare su una Tabella :
- DataOra modifica
- DataGiornoLavorativo
- CampoMODIFICATO
- CampoOLD

Grazie in anticipo a chi puo´darmi una mano! :D :D

Avatar utente
fabio.beri
Messaggi: 1317
Iscritto il: sabato 4 ottobre 2014, 16:24

Re: Storico modifiche su un campo

Messaggio da fabio.beri » lunedì 4 novembre 2019, 10:41

Buongiorno. Il metodo classico è inserire un trigger all'entrata del campo e un trigger all'uscita del campo. All'entrata si copia il valore nel campo e all'uscita se il valore è stato modificato, si crea un record in una tabella dello storico, registrando data, ora e account utente.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18

Omnia Studio

-----------------------------------------
http://www.omniagest.it

angeloIS
Messaggi: 22
Iscritto il: giovedì 14 gennaio 2016, 7:46
Versione FileMaker: 17
Sistema operativo: MACOS 10.13

Re: Storico modifiche su un campo

Messaggio da angeloIS » mercoledì 13 novembre 2019, 20:55

Io uso la funzione
Valutazione(espressione{;[campo1;campo2;...]})

Quando uno dei campi (opzionali) viene modificato, la funzione valuta una espressione (io gli faccio valutare il timestamp corrente )) e ritorna un valore che decidi tu (testo, timestamp eccetera)

Ho creato un campo field_modifcation
campo testo; valore calcolato che ritorna testo:

Codice: Seleziona tutto

Valutazione ( 
Citazione ( Get ( IndicatoreDataOraCorrente ) & " | " & Get ( NomeCampoAttivo ) & " | " & Get ( ContenutoCampoAttivo )  & "¶" &field_modification)  ; 
[name_first ; name_last ;company;address1;address2;city;state;postal_code ]
)
Questa funziona genera una riga di log nel campo testuale, per ogni volta che si fa una modifica un uni dei campi elencati tra parentesi quadre. Registra il timestamp, il nome del campo modificato, e il nuovo valore inserito a seguire un a capo.
Poi creare un pulsante per esportare il log modifiche o per pulirlo è gioco da ragazzi.

Leggi l’help in linea della funzione che spiega tutto.
L’espressione da valutare deve essere numerica oppure se testuale devi usare Citazione(), alla quale io poi aggiungo il carattere di “a capo” per avere un log delle modifiche.



Angelo FMA17
FM17 OSX

Rispondi