GSOC ReportBuilder Weekly Update

Adam Seskunas adamseskunas at gmail.com
Wed Jul 16 15:34:01 UTC 2025


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20250716/b4050d1a/attachment.htm>


More information about the LibreOffice mailing list