views:

617

answers:

3

I have an web application which serves SQL reporting services reports via the reportviewer control. Because of the complexity of some of the reports I use rdlc reports attached to business objects.

Now I would like to expand the system and allow some form of user-defined reports. Ideally I would like the users to connect their reports to the same business objects I use to create the rdlc reports.

  1. Is there a control that allows users to create/edit their own rdlc files?
  2. Can rdl files be attached to business objects?
  3. Any hints/tips for writing my own control to edit rdlc files? (I would think this is a lot of work and would only attempt if there is no suitable answer to 1 or 2).

All my development has been done in VS 2005 with SQL 2005 but I could upgrade if new features in 2008 help with the solution.

A: 

I think SQL Reporting Services isn't meant for this kind of customization. You can hide and show controls and subreports, but stuff like interactive grouping etc isn't there.

You might look into a third-party reporting framework like Telerik's.

Gerrie Schenck
SQL Reporting does have the Report Builder option where users can build reports. I am expecting the users who create reports to be real data workers so a degree of complexity is allowed. I would prefer not to move to a new framework as there is a huge investment already in the current reports.
MBoy
+2  A: 

This isn't much of an answer, but at my company I have put together our own Report Builder.

We have about 30 or so Reporting Service reports that our users can access through the web or desktop application. What we wanted to do was give our users the ability to take any given section within those reports and create their own.

If there is a report we have built for them but they don't want to see the graph, they can create the same report with out it. If they want to combine parts from 4 different reports to make one summary report they can drag those sections around on our custom builder and save it.

The report builder I had to put together pulls down all the different sub-reports they have chosen and reads through the XML adding them to a Report Builder Template XML file I have created. I then have to aggregate all the parameters so as to not ask for them more than once (parameter names do have to be unique across all reports if you don't want them aggregated). This new report XML is deployed to the server and the users can access them when ever they want.

I've also given them the ability to create their own cover pages, headers, and footers by dragging text boxes, images, global variables (date ran, created, ran by, page number, etc... anywhere on a blank canvas. I then convert all the items they've drug around and resized on this canvas in to another report XML file and deploy it as a sub-report that they can add to their custom reports.

Yes, this has taken quite a bit of work, but our users love it. We're in the process now of allowing them to create a report with special groupings so the report can be ran at different levels.

So it is possible, but there is no easy answer. =) I'd be glad to give advice to anyone who asks, but a direct copy of the code is a violation of my contract, but I'll do what I can outside of that.

Dustin Brooks
Thanks for the detailed response Dustin. The more I look the more it seems my only option is to follow a similar route.
MBoy
A: 

Dustin,

Can you provide links to the resources you used in creating your own Report Builder?

Thanks

Jonathan Coombs