Undo Function for Form Applications

I have some rather huge forms with 20+ fields. Sometimes a user may feel that it is better to discard all changes and start a fresh with the record as it is in the database, i.e. nothing has been saved yet. I thought that the Cancel button in the Toolbar was for this. However, it turns out that it is only active for cancelling new records.

I know that you can just just restart the whole application from the application menu, and all changes will be discarded, but I was wondering if there might be a more elegant and intuitive way?

There are a few options. You can apply a button to clear all the fields (i.e. by creating an ajax button). In the event you can reset all your fields to blank or some default.

Ah yes, of course :).
For very minute control of individual fields an ajax button will be just right.

For resetting all fields to their values in the database (i.e. changes have been made but not saved), even just a PHP button that use the sc_redir macro to the application itself works nice. There is a very short flicker, but its much more intuitive than the user having to reopen the application from the menu.