Loading reports on demand by using visiblity

By | October 31, 2009

I was creating some reports that were linked together by drilldown on organisation level. The entry report is different per user since not all users have access to the organisation wide report.  But because the organisation exists of a ragged hierarchy the drilldown links have to be determined dynamically.  This means the entry report for department level only users will have to load the report dynamically .

The only option is to use multiple subreports and determine the visibility in an expression, I decided to use a Countdistinct on the organisation level in the expression. One mayor drawback of this construction is that when a reporting control is invisible it doesn’t mean it wont be executed. This means both of the reports will be loaded on report execution, not good for performance. I decided i really wanted to control the subreport execution so i created a parameter in the subreport and add this to expression that loads the report (and the other drilldown report) with 1 or Nothing as value. When a parameter isn’t passed (same as Nothing) to the subreport the report won’t load thus no performance penalty.

I really don’t like these constructions but i don’t see another way. I wish you could use an expression to fill the report name to load, would make sense wouldn’t it ?