No, there isn't a built in feature to do this. It's one of those things we've considered, but never had time to do. I did have a brief go at it way back in 2.0, but the problem then was, it immediately ran in to nasty support issues, because people would run it on BIG tables ... which would then blow up because of hitting PHP script processing time limits on their server, leaving their tables in inconsistent states. And although we can issue ini_set() directives to raise the max processing limit, that only works on a small subset of servers - most shared and VM type setups specifically don't allow PHP scripts to change their own resource limits in the code. It also had all kinds of other issues, as s
simulating form submissions is *very* tough.
It's not a trivial issue. Even "faking" form submissions is distinctly non-trivial (to say the elast), and is not something we actually "officially" support, altough we (Fabrik Ninjas) kinda know how to half assed do it. And even that wouldn't necessarily provide the environment your calc code needs, if it assumes it is being run on a submission, unless we literally took care of every single little detail, like setting up PHP's request and post arrays in the exact way they would be during a form submission, which just in itself is a near impossibility. Remember we have no clue what you code does, or what "other stuff" it relies on in your specific environment / setup.
Which is one of the two reasons we added the "only calc on save" feature. Originally, the calc only ever calc'ed on save. For display purposes, it simply used the stored value from the table. So we initially modified it so it calc'ed on display as well, to handle cases of new calc's being added on forms with existing data, or existing calc logic being changed. And also to handle cases where the calc used data that was independent of the form itself - like looking up data from another source, which could have changed since "this" row was last saved.
But that introduced issues for people who, for instance, do table lookups in the calc code, but on source which didn't change and didn't need running on the fly ... who were then getting massacred, performance wise, when that added hundreds of database operations on large list displays, as each calc element being displayed ran it's code again.
So ... we had to make it an option.
Which is where things stand today. If you add / change a calc on existing data, you have three options:
a) work out a way of performing your logic in MySQL, and run it as an "update" query by hand, to get your data back in sync.
b) set "calc on save only" to No, and take the hit of the calculation re-running every time you display the data.
c) manually edit and save every row.
TL/DR - it's a distinctly non trivial issue, we are aware of it, but a "fix" (other than the existing "calc on save only = No" fix) isn't likely any time soon, unless someone funds the couple or three days it would take to implement properly.
-- hugh