Published on 05 September 2012

Microsoft Sql Server Reporting Services (SSRS) is mostly pretty good. The report designer is ok, the flexibility you get with web services and the ASP.NET ReportViewer component is pretty good. If you're already running Sql Server then SSRS pretty much comes for free.

One aspect of SSRS that isn't too good however, is the default interface for running the reports. Officially known as 'Report Manager', but more commonly known as 'that thing you run reports with', it has a lot of shortcomings.

It was designed in the pre-ajax days, so although it does the job, it can be pretty clunky. It particularly struggles with reports that have lots of parameters, or reports that have multi-picks with a large number of options.

Given that SSRS is quite openly designed - most of the services are exposed through web services, and the ReportViewer component can be used to embed SSRS reports in applications - I would have thought there would be some good competitors to Report Manager out there. General purpose SSRS interfaces that are a bit more up to date. But as far as I could tell, as of last year, there wasn't.

So here's one that I have developed. Its called CrissCross, and it is an open-source ASP.NET application that provides an alternative front-end for running SSRS Reports.

You can download it from GitHub.

The key features are:

  • Nice clean jQuery/ajax interface for choosing reports and choosing parameters
  • For reports with lots of optional parameters, users choose which ones they want to use (instead of all parameters being displayed by default)
  • Better support for multi-pick parameters using Eric Hynds' jQuery UI MultiSelect Widget, which allows filtering within the multi-pick
  • CrissCross allows you to retrieve parameter choices you have used in previous runs of the report by pulling the data from the SSRS report log
  • Simplified home page shows the user the report they run most often, and the reports they have run most recently
  • CrissCross is open-source so you can take it and modify it to meet your needs

For more details, see the documentation and screenshots on Github.

(edit: changed old codeplex links to github)