And here we are at the end of the A-Z of FileMaker. But undo doesn’t start with Z. Of course, Z is the ubiquitous application keyboard shortcut for the undo command. Use either Ctrl-Z for Windows or Cmd-Z for macOS.
Over the years of FileMaker Pro versions, there have been multiple steps of undo added as well as new areas where undo can be used.
The many steps of Undo (and Redo)
If the undo command is available to you, there are usually many undo steps available (sometimes called an undo stack). This means that if you do something wrong, followed by a series of other actions, you can use the undo command repeatedly to step back through the actions.
Let’s say you delete an object on a layout. Then follow with resizing a field, making a label bold, then adding another field. That’s four actions. If you decide that you should not have deleted the object, and it would be difficult to recreate, then you can call the undo command four times.
If you accidentally went one undo step too far, you can step forward again using the redo command – Ctrl-Shift-Z on Windows or Cmd-Shift-Z on macOS.
The Edit menu shows which step is next to undo or redo. If there is no undo or redo available, the command will be greyed out and say Can’t Undo or Can’t Redo.
The persistence and therefore availability of the undo stack varies according to the situation.
Where can you undo? And how persistent is it?
There are many places in the current version of FileMaker Pro where you can undo your actions. This has been greatly improved over the years. Note that this list is of places where there is a specific undo command available. In other places, you may be able to Cancel a dialog to effectively cancel all changes made there.
The main time I use undo is around 3am and it usually tells me that it is time to stop and go to bed.
As mentioned above, you can undo actions in Layout mode. This has recently been given great functionality in that the undo stack is persistent across mode changes. This means that you can make some changes to your layout, check them in Browse and Preview mode, and then return to Layout mode to undo any changes you need.
The undo stack for a layout is lost when you switch layouts.
If you want to edit a number of layouts and maintain their undo stacks, you can do that in different windows.
Although there is undo available in Browse mode, it is very limited and not often useful. The undo stack is maintained for changes made within a field. For example, you could add some text, format a word in bold, delete some text, then add some more. These steps can be undone.
But the undo stack is lost as soon as you leave the field. If you have not committed the record, changes to the record as a whole can be undone with the Records > Revert Record… command. But that will revert all changes to the record since it was last committed.
The one place where undo in a field is very useful is when you paste in formatted text. If you paste and then immediately undo, it will remove all the formatting from the text and take on the formatting set for the field.
When creating and edits scripts, undo is available. The undo stack is available until the Script Workspace is closed. Even if you save a script, as long as you do not close the tab in the Script Workspace, the undo stack will be retained. You can even run the saved script (without closing the workspace) then go back and undo changes!
Changes to table occurrences and relationships in the FileMaker relationship graph (File > Manage > Database) can be undone. The undo stack is persistent until you close the Manage Database dialog, or if you make changes in either the Tables or Fields tabs.
Important times when Undo is NOT available – beware!!!
If you are about to do something in a FileMaker solution that is destructive with no undo available, you will generally be well warned.
The following actions have no undo available:
- deleting a record or deleting a set of records
- Records > Replace Field Contents…
- File > Import Records…
- deleting a field or a table (and the data contained therein)
- performing a find – there is no way to revert to the previous found set