Spreadsheet Calculation in Jedox Web
Jedox Web tries to calculate as little formulas as necessary, to speed up calculation time. For this, the application uses a “Viewport”. When you see a report in Jedox Web, you only see a fraction of the full report content in the browser window. For example, the report may contain several sheets, but you only see one sheet at a time. On a sheet, there may be thousands of rows and columns containing formulas, but only a part of them is visible in the browser window at a given time.
Jedox Web is aware of which part of the report you are looking at (the “Viewport”), and when the report is calculated, it only calculates what is necessary for showing the contents in this viewport. For accuracy, some buffer is also added. For cell references pointing to different sheets or different workbooks, these values are also calculated.
If you scroll in a larger report, Jedox Web continuously creates new Viewports and fetches new values during scrolling. You can control the size of the Viewport buffer (how much more spreadsheet content is calculated) in the Settings Manager.
The default order of calculation on the spreadsheet is from top-left to bottom-right, similar e.g. to Microsoft Excel.
During each calculation, the Jedox Web Spreadsheet engine will calculate spreadsheet cells only once and then cache their result for the remainder of the calculation, if the same cell is referenced multiple times in a spreadsheet.
This is important when working with formulas which change data, for example, PALO.SETDATA. If the PALO.SETDATA() function changes a cube cell value which is also retrieved with PALO.DATA() or PALO.DATAC() on the same spreadsheet, it depends on the exact order of calculations (including possible conditional nesting in IF() functions) whether PALO.DATA() shows the old value, or the value as it was changed by the PALO.SETDATA() function.
Important: When you use tabs and arrow keys to navigate between unlocked cells in Reports or in the User Mode of the Report Designer, the behavior can be inconsistent if you navigate to unlocked cells positioned outside of the viewport.