Bug report: Formula reliability improvements

Numerous edge cases in formula evaluation have been resolved, making complex formulas more reliable and predictable.

Originally, our latest release was planned for this spring. What happened? Well, we hit a snag.

When we wrote one of the blog posts describing the new Values property of number and text drop-down fields, the numbers in the example app we developed didn’t update properly. Puzzled, we looked into the issue, not knowing that we’d have to spend months reworking Calcapp to make the app work.

We fixed a very similar issue roughly one year ago. The issue then was that referencing named values through functions like IF and SWITCH would lead to subtle bugs — calculations wouldn’t update and we couldn’t reliably detect cycles.

Cycles occur when formulas reference themselves, either directly or through a chain of other properties. While this might seem obvious to avoid, it can happen accidentally in complex apps with many interconnected formulas.

The fix we introduced a year ago turned out not to fix all issues with named values. It turned out to be a band-aid and not a long-term fix, so we had to go back to the drawing board and do this right.

What we fixed

Beyond the named values issues, we found other subtle problems. For example, consider a property like IncludedFields of reset buttons. A formula like the following would work in some cases but not others:

SUM(ResetButton1.IncludedFields)SUM(ResetButton1,IncludedFields)

This used to work fine if that property was set with a formula, but would give an error if you selected fields in the inspector instead. This inconsistency has now been fixed.

There are many other similar problems that have been resolved, particularly when named values reference other named values in complex ways.

Our commitment to formulas

Sometimes customers ask us if Excel is running in the background on our server to power our apps and formula editing experience. The answer is no — that wouldn’t be practical (or legal). We use our fully custom formula engine, which consists of hundreds of thousands of lines of code developed over 16 years.

We believe Calcapp’s formulas are its best feature. They enable the flexibility that ensures your apps meet your needs. We will continue investing to make sure this foundational part of Calcapp remains reliable, no matter how complex your formulas become.

« Bug report: Creator stability enhancements Feature: Bulgarian language support »