Know What's Cooking - Stay up to date.
03

I've lately been busy writing our new conversion engine for Microsoft Reporting Services. This is now the third platform we support, next to Crystal Reports (now owned by SAP) and List & Label, a tool from the German-based combit GmbH (see www.combit.net).

We are very happy with the Crystal Reports and List & Label conversion results. Things have to be improved from time to time but the manual work involved is very little compared to a full manual design of the report. We are trying to achieve the same thing with Reporting Services and we are somewhere between 80 to 90% there. There are many interesting things in RS and over the next few weeks I am going to share a few tidbits and odd features with you.

One thing I noticed very early is that Reporting Services have yet another concept for handling things like "Page X of Y". Each of the three engines tackles this differently and each approach has its pro's and con's. I thought I share a quick overview with you:

  • Crystal Reports: Uses a two-pass approach, the report is first built in memory to calculate the total number of pages and rendered a second time to make sure page numbering is correct.
    • Pro: higly flexible even with dynamic sizing in large reports
    • Con: tends to be slower than other approaches especially for large reports
  • List & Label: Uses a one-pass approach, the report is built with the total page count as a fixed string variable that is later filled at each position where it is used. You cannot use this variable in expressions, just as an independent field.
    • Pro: it is probably the fastest approach for page numbering
    • Con: you cannot use it in formulas or for concatenation
  • Reporting Services: This one uses a "1 1/2-pass"-approach - which is a bit awkward. In RS the detail part including report header, group headers/footers, detail block and report footer are processed first. Page headers and footers have a fixed size on all pages. The content for the page header/footer is then filled in during the second pass where the total number of pages is already known.
    • Pro: speed should be (theoretically) somewhere between CR and LL
    • Con: you cannot have variable page sizes, which is a big limitations if you want to print data fields in the page header or footer

As you can see these three concepts are fundamentally different and have a direct impact on the nature of reports and your report design if you use any of these tools. There are many more such differences and it is best to pick the one that does the best job for the project/product.

The good news is that now our migration offering can convert Report Builder reports to any of the three reporting engines.

 

Actions: E-mail | Permalink |