Thursday, July 2, 2009

ActiveReports rapid XML processing options

Chillisoft describe in their latest blog on how they leverage the flexible code model of ActiveReports to roll an optimized XML+XSLT solution.

----Extract---
ActiveReports provides the XMLDataSource option for sourcing your data from xml. My knowledge of all its ins and outs is not substantial, but I ran into two significant problems in a recent project which led me towards an alternative, innovative approach.


The first problem is that an xml document does not guarantee a structure like a database does. Xml’s flexibility in the layout of elements is beautiful on one hand but hard to fit into a report that expects a fixed structure.


The second problem in my case was the use of sub-reports to cover for different structures in the xml document. I won’t get fully into the detail, but where an element holds recurring sub-items, you can use sub-reports to list all the items. The trouble is that a significant number of sub-reports kill your report generation performance. I had a particular problem where my first report would take 15 seconds to generate on the server, and then degrade by another 5 seconds every time I ran it again. This is of course totally unacceptable for a frequently used report.

Here then was my innovation … combine ActiveReports and XSLT. ActiveReports provides the RichTextBox, which has an Html property to which you can assign the Html you generate from your XSLT.

Read the full blog posting.