>
You need a double buffered table. One table has the same information but no rules. The user fills out the form, on the unprotected table, at their leasure, then when thay want to commit, copy the record into the rules protected table. Report any errors back to the user. And for bounus points, focus the field with the problem. Here a Save button would work nicely. 'Save (for later)' 'Commit (Apply? to disk.)' 'Cancel (last changes)' and 'Abort (the whole thing)' The names need work, but the concept is there.>
>In theory, this should be able to be accomplished using single tables with a "Completed" flag indicating the record has passed validations. This would give you internal separation of the data. Of course you'd have to keep this in mind while developing (all) other parts of the application.
Exactly what I want to avoid. The working data should not be concerned with its completeness. All working data should be complete. Keep 'data in development' away from the main code, it only adds complexity and increases the coupling between the state of the data and the algorithms that process it.
If they have you asking the wrong questions,
they don't have to worry about the answers.
-proverbs for paranoids #3