I have a form that has a number of fields that are set to "protected" and have calculation scripts on them. If the user selects a specific radio button option elsewhere, the form sets the .access parameter to "open" and disables the calculation so that the user can enter whatever they want into those fields. The problem arises when the user imports XML data via Acrobat. The radio button choice is made (since it is bound to an element in the schema), but when the form changes the access parameter of the fields to "open", it fires the calculate event on the fields and we lose the value assigned to those fields from the imported XML.
Is there any way to preserve the fields value when it changes from "protected" to "open"? Here is an example PDF w/ XSD.
The more I dig into this the more I think this might be an issue with calculate.override not disabling the calculations on a field, even when it is set to "open" - at least until the user manually edits that field.
Ok, worked out a solution. It's specific to my application, but maybe someone else will get something out of it. What I did is moved the calculation script from the field I am changing the access parameter of (call it "Field A") to the fields that feed into that field (call them "Field B" and "Field C"). Now, when the user triggers the exit events on B and C, each one fires a script that updates the value of A. For my application, this works only because B and C are hidden from the use if they toggle the radio button allowing them to manually enter A.
Basically, instead of A pulling values from B and C to calculate it's value, B and C check each other and push values to A.