This past week I've uploaded a new patch https://gerrit.libreoffice.org/c/core/+/185810
The new patch handles formulas and allows the user to add database information as input for a formulas. As mentioned last week, one priority I had was to change the code paths for how a Report is saved vs. how it is executed(i.e. shown to the user when clicking Execute Report in the UI). This has proved to be more complicated than anticipated. The main issue is that up until now, I have been modifying the output filter for a Report(xmlExport.cxx), with the goal of changing its output so that it matches what the Pentaho Report Engine outputs. This breaks the functionality that saves a Report, since this also uses the same output filter. The solution to this problem is to have two output filters, one for executing a report and one for saving a report. This will allow backwards compatibility for how Reports are currently saved and loaded from file while also providing a separate path for executing Reports that bypasses the Pentaho Report Engine. I have produced a document that explains how a Report is stored internally, how it is exported as well as the two export paths that are currently used and where the Pentaho call is located in the export path. It can be found here <goog_712266676> https://nextcloud.documentfoundation.org/s/Ky3GkWz5TbDP93B I have also produced an odb document with a small example database along with some saved Reports. WIth my patch pulled and built, the Pentaho call is bypassed and when you open a saved Report, it is produced by the C++ code in xmlExport. This demonstrates the progress the project has made to date. https://nextcloud.documentfoundation.org/s/3qZapNfoK9xFg5E As far as next steps, I will be working on modifying the export path to distinguish between the two scenarios, 1) to save a report and 2) execute a report. The next step will be to create a subclass of the current xmlExport implementation. The subclass will handle scenario 2) and will serve as the export filter that will bypass the Pentaho Report Engine while the base class will handle saving a report. That's it for this week, thanks for reading and have a good week! Adam Seskunas