I am using WinCalcManager in a UltraGrid with about 100 bound columns + 12 unbound that contain formulas. There are a total of 6 bands - a parent band and rest are child of parent. Half of the formula's are subtotals of child band columns. Rest of formula's are based on columns in parent band.
The grid returns about 3000 rows - it takes 10 plus minutes to load when calc manager is set to Synchronous mode. If I remove all the unbound formula fields it loads in about 5-10 seconds.
Grid is primarily used to export to excel so running Async doesn't help because it also hangs if you try to export to excel before all the fields are calculated.
I tried with latest service release for 2009 Vol 2.
Does anyone have any recommendations? I am thinking I just need to abandon the WinCalcManager and instead add bound columns and perform calculations on the dataset prior to binding to Grid.
Hi,
It doesn't seem like the number of columns and rows you are using should put all that much strain on the cpu. 10 minutes seems quite excessive for the number of calculations you are describing here.
Of course, it might depend on the nature of the calculations and their dependencies. Are any calculations depending on other rows within the same column? Do any of the values of the cells that are the source of calculations return null or DBNull?
One thing you might try is to set the Visual Studio IDE to break on all run-time exceptions and see if there are any exceptions occurring during the calculations. The exceptions will be caught, obviously, but if they are occurring and getting caught, they will slow down the application quite a bit. If there are exceptions, you might be able to avoid them.
If that does not help, then we'd need more information to figure out why it's taking so long. Can you reproduce the issue in a small sample project?
I will create a sample project with my desired layout and a sample XML dataset as source. Where can I upload (or email) the project so that its not public?
I uploaded a sample project to corresponding support case CAS-37352-XE0YU1.