We strongly recommend that everyone download the latest update. It resolves a problem in a core function that can result in significantly slower execution under certain circumstances.
Although we only just released the 2.01 update a couple of days ago, we received a bug report from a customer about a problem with calculated columns being very slow in the Quick Report.
Upon investigation we established that the algorithm we were using to convert a decimal value to string in the STR()
function had a flaw in certain cases. The one we tested was a division that had over 700,000 significant digits after the decimal point (we did say we have very high accuracy). The string format passed was "99999.00"
. Unfortunately the algorithm was doing some manipulation that was terribly slow when pushed to that many digits and was unnecessary. The solution (which you will find in the source if you care to look), was to simply grab the number of requested digits + 10 from the decimal point and then convert that to a value and then do a .fix()
on that to the requested number of places. The speed went from over a minute, to virtually instantaneous.
Since the STR()
function is a very core function it affected practically every library and sample program, so we decided to do a new release just for this one problem. If you wish to see how we tracked it down, you will find that test case 701 in the STRtest
project in the SIMPOL\Projects\tests directory is the one that causes the issue. Just temporarily copy it to the first case and comment that one out. Then you can try it for yourself.