Vi har tidigare skrivit om ändringsloggar i FileMaker. Med FileMaker Pro 10 och manus-triggers blir det ännu enklare att skapa loggar och då till en separat tabell. Följande exempel visade vi också på FileMakers frukostseminarium i Lund idag (4 februari).
I exemplet nedan kan jag logga ändringar i obegränsat antal fält. Börja med att skapa två manus enligt nedan:
Manus 1: Spara fältdata
Ange variabel [ $$faltdata; Värde:Get ( AktivtFältinnehåll ) ]
Manuset sparar innehållet i aktivt fält i en global variabel. Det är tänkt att köras när man går till ett fält för att spara befintligt värde.
Manus 2: Jämför data
If [ Get ( AktivtFältinnehåll ) <> $$faltdata ] Ange variabel [ $faltnamn; Värde:Get ( AktivtFältnamn ) ] Ange variabel [ $data; Värde:$$faltdata & "->" & Get ( AktivtFältinnehåll ) ] Gå till layout [ “Logg” (Logg) ] Ny post/sökpost Tilldela fält [ Logg::Faltnamn; $faltnamn ] Tilldela fält [ Logg::Data; $data ] Gå till layout [ ursprunglig layout ] Avsluta manus [ Resultat: 1 ] End If
Manuset kontrollerar om innehållet i aktivt fält är ändrat, och om det är ändrat skapas en ny post i tabellen ”Logg” med uppgift om vad som ändrats. Tabellen Logg kan du ställa in så att Skapad tid och Kontonamn sätts in med automatik när man skapar en ny post.
Markera sedan alla fält du vill skapa ändringslogg för i layoutläget, högerklicka (ctrl + musklick på Mac) och välj Ställ in manusutlösare i menyn. Ställ in den enligt bilden nedan.

När ett fält blir aktivt dvs. när man klickar i det eller tabbar till det så körs manuset ”Spara fältdata”. När fältet lämnas genom att annat fält blir aktivt eller posten verkställs (genom att man klickar utanför fälten) så körs det andra manuset ”Jämför data”.
Alla ändringar sparas i en separat tabell med gammalt och nytt värde, datum och klockslag samt vem som gjorde ändringen.
Ladda ner exempelfil om du vill se hur databas och manus är gjorda. Klicka på knappen Visa logg i exemplet för att se ändringsloggen.