At the end of last week I worked on getting my ReportDesign test through code review and ultimately merged. Unfortunately, it turns out that the test is modifying the test file in place, thank you Stephan Bergmann for bringing this to my attention today.
I've been working on fixing the issue, but have not had any success so far. I've found the cause of the problem, by using the odiff tool on the test document I've found that something is modifying the manifest.xml of the document. Experimenting with the code it looks like the following lines are the offending parties. Reference<sdb::application::XDatabaseDocumentUI> xUI(xController, UNO_QUERY_THROW); xUI->connect(); Reference<XConnection> xActiveConnection = xUI->getActiveConnection(); I've tried different ways of opening and saving the test document for instance as read only, with no success. My next step will be to look into the XDatabaseDocumentUI class to see if I can find where its modifying the document and to see if I can find a work around. Until today, I was working on implementing the second half of the Grouping functionality in a Report. The ability to group fields by prefix character, entire field, interval, and various date functions(i.e. by month, or week). I had been concerned that if this was implemented in C++ it would involve lots of text and more concerning, date processing. In my weekly meeting with my mentors we discussed this and Michael and Hossein both suggested that if possible, to use SQL statements to do as much of the work as possible. So I spent quite a bit of time going over various SQL constructs for sorting and grouping and ultimately came up with the idea to use SQL CASE statements to logically determine matching fields and then add a column to the SQL result that denotes which Group(s) a field matches. Using the SQL statement to do the matching offloads the complexities of string and date parsing to the underlying database. Currently I'm working on the C++ code that takes the type of matching determined in the report::GroupOn struct and using it to build the appropriate SQL CASE statement. So far I have a limited prefix character function implemented and I'm using it to test the concept with great results so far. After finishing the GroupOn to SQL CASE statement implementations, I will work on how the actual headers and footers for groups are written to the xml doc, this could be a little tricky as its currently a recursive call and my new implementation may or may not break that. When the headers and footers are being written to the correct places the Grouping functionality will be finished and it will be time to move on to my TODO list of smaller singular issues. That's all for now, thanks for reading and have a good week, Adam Seskunas