Glad you said you were using filemaker 11. You can set an OnLayoutLoad script trigger to log the access in a table. You can use one table and one script for this, just log both the layout name and any other data that you want (account name of user, date, time...)
Note that blank layouts may in fact be used by scripts for vital reasons. I often use such a hidden field when I need to manipulate records in a specific table and need to avoid firing script triggers such as OnLayoutLoad in the process.
Nope I've looked at all of the blank layouts. They are literally for making breaks in the Layouts menu.
I'm fairly new to scripting in FileMaker (aka I have one of my other IT mates do it hehe) so what would your basic script be for that? Would I then have to put that on all of the layouts I don't know about then?
I would definitely need to have the information of date and time to make things easier. Account name isn't such a big deal as most of the people using the database are severely afraid to go to any other layout than the ones we usually train them to.
Any help on this would be greatly appreciated! :)
Set Variable [$Layout ; Get ( LayoutName ) ]
Go TO Layout [LayoutLogger (Layout Log)]
Set Field [Layout Log::LayoutName ; $Layout ]
Go To Layout [original layout]
You can step through each layout you want to monitor and select this as the OnLayoutEnter script trigger. If you find a script is all ready attached to that trigger event, you can open that script and insert a Perform Script step that calls the above script to do the same.
You can define date and time or a single timestamp field in Layout Log that auto enter that information when the new log record is created.
Thank you SOO much! This will help out for the pruning process.
Now that I look at this again, I am now wondering if there would be a similar solution to being able to see what scripts are used. We have basically the same problem with WAY too many scripts as well.
You could probably insert a Perform Script Call to a similar script that uses Get ( ScriptName ) to pass the name of the current script to the logging script as a script parameter.
You'd then use Get ( ScriptParameter ) instead of referring to a variable when logging the script call.
You'd have to insert this call into the beginning of every script you want to log.