I see what you mean, seems the execValidate() method call cancels the calculate event. Maybe you can try using the validationState event, which came in with Reader 9.1. This event fires when a field changes from valid to invalid or vice-versa (it also fires after the initialize and if the reason for being invalid changes). So you could put a validationState event at the top of you form (using event propagation) with the following code;
Mandatory fields are only flagged as invalid once an attempt to submit has been made, or a call to execValidate() has been made (or when a field that had a value is cleared). So I have added an execValidate() in the docReady event and also set the form validation properties to not show any error message popups.
That said, I've placed the following code into the "calculate" event:
if(Form.Subform.execValidate() == false)
this.rawValue = "Not Complete"
this.rawValue = "Complete"
I want the field to show "Not Complete" or "Complete" based on the whether or not the required fields have been filled. It appears that I can't get this to work unless I put it on a "click" event of a button.