To prevent editing in certain fields, simply use the Inspector, Data tab, and set the checkbox for non-entering.
Next, use a global field to display data you want to allow editing. Then you can use your Custom Dialog or just a simple button for Save changes.
When you do this you need to ensure the record is locked for this person to prevent other problems.
Also, why not use a related file to store this field. Then each user can open the related table and edit the field there, which was copied over via the script. This will provide a historical record and you can use the last edited record and duplicate it for the new edit. That record is either saved to become the master record or it is deleted and the previous record becomes the master.
You can also create a portal that shows just ONE record, this master. Use a button for editing that duplicates the related record, etc.
Well I should have stated that my own understanding of FMPro is pretty superficial. I've only learned what I've needed to get the job done. What is the Inspector? I'm using FMPv10 on Mac.
Also, perhaps I should have given more context for the situation. This is basically a database for our media library. So it's essentially an inventory management database. Each item has a unique entry and associated metadata stored in a number of fields. There is only one table and when someone needs to edit the entry it should be a permanent entry for all users. Also, it's essentially a single user environment because everyone uses the same computer to access the database and performs operations or make edits. It's a very utilitarian and rudimentary setup.
The problem we have is that some people are just careless and don't understand that when they make a change that its final. Most non-techies are used to working in Word and are accustomed to being asked if they want to save changes. So, in essence, I'm just trying to make it "idiot proof" for a lack of a better term. Also, there are certain fields that really shouldn't be easily editable for anyone, even myself. They need to be shown on the layout for reference but for example, radio buttons should resist change by a casual misplaced click of the mouse.
I'm not sure I understand your method of using a separate field to store the changes or global fields. Further, even if I did understand it, it sounds complicated to execute for someone who doesn't know how. So then if I were to implement it, I would need to be walked through step by step.
Thanks for the input
The Inspector is tool palette first introduced in FileMaker 11. Since you have 10, this palette does not exist, but you can still bar access to a field while in browse mode.
Enter layout mode, click a field or group of fields and select the Field/control option from the layouts option, then select Behavior from the sub menu. At least I think that's how we did it in v10. I think I have that right but a few details may be different.
Note that in Layout Setup, you can disable auto save for a layout, then you get a dialog asking permission each time the system attempts to commit (save) the record. If you place an empty web viewer object on your layout, make it transparent so that it won't be visible and position and size it to cover the entire body of your layout and positioned to be behind all of your other layout objects, then clicking the layout background will not commit the record and you can add a 'save' button to commit the record.
for example, radio buttons should resist change by a casual misplaced click of the mouse.
Hmmm, since the computer cannot read the user's mind, how would it tell the difference between a misplaced and an intentional mouseclick?
You could remove this field from the tab order (There's a set table order option in one of your menus when you are in layout mode), and place a transparent button over each radio button value in the field, set to perform a script when the field is clicked. The script can ask for confirmation from the user before changing a value. The set field step can assign a value to the field if the user clicks OK and leave it unchanged if they do not.
You can also set up a system that saves frequent backups to a sequential series of file names so that you can go to a backup copy to restore data that should not have been modified.
Both these suggestions and Jack's (A set of global fields for editing or saving prior versions of your data are both options worth considering) will challenge you to acquire more knowledge and skill in what you can do with a fileMaker database.
Thanks Phil. I followed your steps and got to the Behavior section of the Field/Control but saw no way to restrict editing. I attached a screenshot.
That's a very clever idea to put a transparent button over a field. Now that I can probably figure out and it sounds promising.
See this part?
"Allow field to be entered [x] In Browse mode"
clear the check box and the field becomes unmodifiable on this layout.
You can also pull down the insert menu while in layout mode and choose to insert a merge field. A merge field is also not editable and you can use this option to insert any field in your database into your layout as a merge field.
I guess I was expecting it to say "Restrict editing of this field"