AnsweredAssumed Answered

Format > Conditional doesn't see a change to an unstored calculation field

Question asked by Ward on Apr 27, 2009


Format > Conditional doesn't see a change to an unstored calculation field

Description of the issue

I have database with a Customer table and an Order table (in separate files, which is probably not important).  When a new Order record is created, contact information (e.g., name, address, phone number) is copied from the Customer record into the Order record.  It's copied so that the Order record has a snapshot of the customer information that is not affected by subsequent updates to the Customer record. Since it's sometimes helpful to know when there's a difference between an old order and current customer information, I decided to flag field differences by changing the color of the label of each Order field that is not identical to the current Customer field. For example, the following Format > Conditional formula works fine: Order::PhoneNumber ≠ Customer::PhoneNumber   // That's a not-equal sign between the two fields. Then I created an unstored, calculated field for each contact field using the same field expression (e.g., "diffPhoneNumber = Order::PhoneNumber ≠ Customer::PhoneNumber" ). When I replaced the field comparison expressions in the Format > Conditional formulas to use the calculated fields, the field label color continued to work, with one notable exception: When the value of a Customer field changes, the color of the Order label does not change. Reevaluation of the conditional formula is triggered when an actual field changes but not when an unstored calculated field changes. The Data Viewer shows that the calculated field is being updated in real time.  If the Order window is refreshed for any reason (e.g., change tab, change record), the conditional formula is reevaluated and the label color is corrected. -- Ward