This week I began work on subclassing ORptExport to create a second export filter. The goal is to modify the export path of a report so that one filter can be used for saving a report and one filter can be used to execute a report. This allows us to maintain backwards compatibility with existing reports while allowing us to bypass the Pentaho Report engine when executing a report
With the help of my mentor Michael I was able to get the subclass implemented and I have begun work on reducing the code redundancy between the two classes. The goal is to be able to wrap the new parts of the filter implementation in function calls from the base class. This will make maintaining the code easier and allow for easier debugging. With this in mind I have submitted a patch to Gerrit that splits up the ORptExport::exportContainer function into four logical chunks. https://gerrit.libreoffice.org/c/core/+/188189 As I continue working on the implementation of the new export filter I will continue to go over the functions in ORptExport to see if they can be broken down into smaller pieces. This will hopefully aid in my efforts to reduce any code redundancies and will make maintaining and debugging the code in ORptExport easier moving forward. After the new export filter is finished I will change the current filter call so that it executes the appropriate filter depending on how the filter is called. My mentor Michael was kind enough to do some work to make this easier, the patches can be found here. https://gerrit.libreoffice.org/c/core/+/188014 https://gerrit.libreoffice.org/c/core/+/187948 https://gerrit.libreoffice.org/c/core/+/187914 After finishing the filter(s) implementation I will begin to work on implementing Grouping functionality in C++. Thanks for reading, have a good week! Adam Seskunas