Home > SSW Standards > Rules > SSW Rules to Better Reporting Solutions
I've been putting together Development Guidelines for my employer and in the process have reviewed many published standards (in the .Net arena) from around the world. In each category, the suggestions at SSW are always among the best.
Leon Bambrick -
Do you agree with them all? Are we missing some?
Let us know what you think.
Rules to Better Reporting Solutions
-
Do you use the best tools to present Reports to users?
There are many ways to present your data to users over the Web. In general, most
reporting needs can be grouped into the following 2 categories:
- Detail Reports - Printable reports that show detailed
information for each row in the database. (e.g. an Invoice)
- Summary Reports - Business Intelligence Reports that group and
summarise data into counts and sums of individual rows (e.g. a Monthly sales
with a chart). Typically, OLAP oriented tools exell in this area.
Below is a guide on the best options available for the Microsoft platform, with
Pros and Cons for each.
The scenario
Scenario: I want my customers and staff to be able to see this data in a useful
format. What are my options?
Start Date: 1/1/2006 End Date: 1/4/2006
|
Product |
Downloads |
|
SSW Upsizing PRO! |
181 |
|
SSW Code Auditor |
114 |
|
SSW .NET Toolkit |
63 |
|
SSW Performance PRO! (for Access 2000,2002,2003) |
60 |
|
SSW Exchange Reporter |
58 |
|
SSW Exchange Team Calendar (for Exchange Server 2000,2003) |
53 |
|
SSW Diagnostics |
49 |
|
SSW SQL Total Compare |
49 |
|
SSW SQL Auditor |
39 |
|
SSW Access Reporter .NET For IIS |
34 |
|
SSW SQL Deploy |
33 |
|
SSW eXtreme Emails! |
31 |
|
Total |
764 |
The obvious choices for displaying this data are Reporting Services
2005,
ASP.NET 2.0,and Crystal Reports. Let's take a
look at how easy it is to complete this report using these and other solutions.
-
Reporting Services 2008 R2 (Web and Rich Client)
http://www.microsoft.com/sqlserver/en/us/default.aspx
Pros
- Short development time - 3 hours for sample report.
- No code.
- You can export reports to a large number of different formats right out of the
box (Excel, PDF, HTML, Word, Images).
- You can schedule report execution and have your reports emailed automatically to
you or a list of recipients (via Data-Driven Subscriptions).
- Developers can create reports using Visual Studio Business Intelligence Development Studio
- End Users can create ad-hoc reports using the Report Builder 3.0 click once application (same functionality as Visual Studio)
- Parameters are easy to add to the report and bind to the data.
- Grouping is simple.
- Drill Down without needing a tree view control.
- Built-in security module out of the box
- Rich set of charting controls and geospatial controls
- Reuse report parts in many reports
- Client side reporting using RDLC
- Can easily integrate into SharePoint to make publishing and sharing reports simple
Cons
- Limited control set (although the controls are very rich). You are forced to use built-in controls. For example, you can't have "next month / previous month" hyperlinks like in ASP.NET (see below)
- Query string doesn't change when you change the parameter values in a report. You have to re-submit the page (no AJAX)
- Can't separate SQL into a strongly-typed dataset or middle-tier objects like in ASP.NET (unless you write a lot of code to support your own provider)
- ifficult to integrate user input and dynamic behaviours like ad-hoc grouping

Figure: SSW Product Download Report (Reporting Services 2008 R2)
Conclusion
Reporting Services is the way to go if you do not need
- Dynamic grouping.
- To write to your database via the report.
Demo
SSW Exchange Reporter (Samples)
Note: When comparing two sets of values in a report, you should
avoid showing change as a percentage
-
ASP.NET (Web)
Pros
- Query Strings supported (e.g. URL can be emailed to another user who can then
see the correct report).
- Complete Control over the parameters - e.g. "Current
Month" hyperlink
- Complete control over the rendering of the output
- Can edit data via Databound Controls
- Sorting via hyperlinks possible
- Can make the reports more interactive, allowing such functionality as dynamic grouping, sorting and filtering
Cons
- Long development time of sample report - 8 hours to convert including
formatting,
sorting and adding 3rd party parameter controls (like Date Time
Pickers).
- Difficult to create reports that print adequately, although it is possible to do
with CSS Printing.
- Multiple Page reports impossible.
- Cannot run offline unless the database is replicated and hosted locally (not
recommended)
- Very difficult for Users to create reports
- Graphs - To show a graph you need to code OWC to generate a .png or get a 3rd
Party Control like Dundas Charts
- No Date/time picker built in - have to use a
3rd party control or the AJAX Toolkit (or write your own)
- No export to PDF or other formats - you have to install Acrobat and print to PDF
from the browser
- No nice Reporting Services interface - you have to create the navigation
yourself
- Have to configure security from scratch (e.g. using the ASP.NET membership
and roles providers).
- Hard to do drill-down. To do this, you need a Treeview with code
- There is OLAP support but you need to know MDX.
Conclusion
Good if you:
- Want to edit data in your report (e.g. the ASP.NET Bindable controls like
the DataList and GridView have edit modes)
-
Want dynamic grouping and cannot go to OLAP
More at
http://www.asp.net/ReportsStarterKit/
Demo

Figure: SSW Product Download Report (ASP.NET)
http://www.ssw.com.au/timeproonline/Report/ProductDownloadGraph.aspx
-
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request.QueryString("DateFrom") <> "" Then
txtDateFrom.Text = Request.QueryString("DateFrom")
txtDateTo.Text = Request.QueryString("DateTo")
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Redirect(Request.Url.AbsolutePath.ToString + _
"?DateFrom=" + HttpUtility.UrlEncode(txtDateFrom.Text) + _
"&DateTo=" + HttpUtility.UrlEncode(txtDateTo.Text), True)
End Sub
-
Figure: ASP.NET - Code to read from and write to the query string
-
...
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource1">
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<Columns>
<asp:BoundField DataField="FileNameURL" HeaderText="FileNameURL" SortExpression="FileNameURL" />
<asp:BoundField DataField="ProdName" HeaderText="ProdName" SortExpression="ProdName" />
<asp:BoundField DataField="DownloadCount" HeaderText="DownloadCount" ReadOnly="True"
SortExpression="DownloadCount" />
<asp:TemplateField HeaderText="Graph">
<ItemTemplate>
<img src="Images/chartpixel.gif"
height="10"
width="<%#DataBinder.Eval(Container.DataItem,"DownloadCount")%>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
</asp:GridView>
...
-
Figure: ASP.NET - Implement the bar chart in the grid;
-
Crystal Reports (Windows and Web)

Figure: We used Crytal (Windows) for our SQL Auditor tool to support
disconnected opterations.
Pros
- Quicker to develop than ASPX (around 5 hours for the sample)
- (Windows Client) Doesn't require a server-based product like SQL Reporting
Services - can run offline
- Great Printing - Easy to export to .pdf for printing
- Easy to export to .xls for analyzing
- Very fine control over output appearance.
- Integrates well with .NET Strongly Typed Datasets and Objects.
- Good Drill down feature.
- There is OLAP support but you need to know MDX.
Cons
- Custom Development environment
- Licensing is very expensive for more than 5 concurrent reports
- No sorting hyperlinks
- (Windows Version Only) QueryString cannot be emailed to another user
- Dead technology
Conclusion
Quite expensive for Web Clients - Only use on solutions that have a big
investment in Crystal or you require an offline ability for a product (Windows
Client only)
|
George Doubinski
said it best: "My major pain with Crystal has been stability of their
development environment. Im not sure if they've done anything in 2.0 but in 1.1
it was nearly unusable. The hoops to jump through to simply change data source
was bordering on insane, for example. The other issue is, obviously, cost when
scaling." |
-
DataDynamics Active Reports (Web and Windows)
Basically an alternative if you were to choose Crystal.
http://www.datadynamics.com/
Pros
- Cheaper Licencing than Crystal (Royalty Free)
- Xopy deployment of reports
- (Windows Client) Doesn't require a server-based product like SQL Reporting
Services - can run offline
Cons
- Support for product not as widespread
- Not in bed with Microsoft like Crystal
- There is OLAP support but you need to know MDX.
-
XML/XSL (Windows and Web)
Pros
- Can do great things like
http://www.amorphous-media.com/client_demo/xmlreports/student_app.htm

- Can have client side filters and sorting
- (Windows Client) Doesn't require a server-based product like SQL Reporting
Services - can run offline
Cons
- Very long development time
- Impossible to make it print for multiple page reports.
- There is OLAP support but you need to know MDX.
Figure: We used this method for reporting in the SSW tool Code Auditor (a
Windows Forms application)
-
Access (Rich Client and Web via SSW Access Reporter)
Pros
- Good Report development environment
- Very good printing support
- (Windows Client) Doesn't require a server-based product like SQL Reporting
Services - can run offline
Cons
- Access needs to be on the machine generating the reports (e.g. on the server
when using SSW Access Reporter)
- Need an Access License
- Not designed natively for the web
- No drill-down features
- No OLAP support
- (Windows Clients Only ) Not every end user has Access (this is a show stopper if
Access in not in the client's SOE!)
Conclusion
Only use SSW Access Reporter for solutions
that have a big investment in Access.
http://www.ssw.com.au/ssw/AccessReporter/AccessReporterDemo.aspx
-
-
Figure: Tools like SSW Access Reporter help to display your Access data
on the web
View a
Sample report

-
Office Web Controls (OWC)
Pros
- Allow you to embed interactive office documents in to HTML
- Supports updates to the datasource via the control
- Easy to create - just save a document in "Interactive HTML format"
- Supports pivot tables, spreadsheets, charts
Cons
- Require a download or to have office installed (typically you would only install
on an intranet)
- They run as an ActiveX control - so have limited access to your local system
http://www.ssw.com.au/timeproonline/Report/ProductDownloadGraph_OWC.aspx
-
-
Figure: Office web components enable interactive charts inside your browser, but
require Office to be installed
-
OLAP - Data Analyzer (aka Microsoft's Rich Client
Solution)
Pros
- A visually appealing UI.
- Full drill-down support.
-
-
Figure: Office Excel 2007 delivers new powerful data visualization tools
Cons
- No longer supported. This functionality has been moved into Excel 2007.
- Microsoft dont have a web version of Data Analyzer.
-
Excel 2007/2010 Data Visualization with SharePoint 2007/2010 Excel Services
-
-
Figure: Office Excel 2007 delivers new powerful data visualization tools
-
-
Figure: SharePoint Excel Services brings the spread sheet onto the web
Pros
- Can run over the Web via Web Services
- Hides the Complexity of OLAP
- End Users can change it; most users are very familiar with Excel
- A visually appealing UI
- Full drill-down support with support for Cubes
- Can publish to SharePoint and allow users to interactively use the report, also gives you full version control
Cons
- Requires rich client Install
- Requires the Excel 2007/2010 License
- Requires SharePoint 2007/2010 License for Excel Services
-
OLAP - 3rd Party
Alternatively you can use:
http://www.thinslicer.com (free)
http://aladdin.sdm.com.au/demo/Template/AladdinFixedReports.asp
http://www.zaptechnology.com
-
Conclusion
For all reports, the most critical factors for SSW are:
- Development time
- Offline support (only if absolutely neccessary)
- Having drill down functionality (for summary reports)
- Having the ability to put the reports on the web.
- Having reports with a query string so a live report can be seen by many users at
once with the same parameters (e.g. after they are sent the URI by Messenger).
Which solution should I use when doing detail type reports? (usually printable
ones e.g. an Invoice)
Because you can't control the report length and need strong
layout control, a proper reporting solution is the best option. Hence Reporting
Services and Crystal (although not naturally my second choice). But the fact is
you just dont know if the report is going to be multiple pages so:
- Web and Windows - Reporting Services
- Web Crystal Reports
- Windows Crystal Reports
Note: the same report can be used on both web and windows
- Web Active Reports
- Windows Active Reports
Then
- Windows - Access
- Windows - Excel
- Web - ASPX
- Web - XML/XSL inside an ASPX page
Which solution should I use when doing summary type reports (usually business
intelligence ones e.g. monthly sales with a chart)
Below is a general guide as to the order we choose for summary reports (BTW
This list is not set in stone and we use all the below options for different
clients):
- Web and Windows - Reporting Services
- Web - ASPX
- Windows - Excel and 3rd Party OLAP Tools
- Web Crystal Reports
- Web Active Reports
- Windows Crystal Reports
- Windows Active Reports
- Windows - Access
- Web - XML/XSL inside an ASPX page
-
-
-
Figure: PerformancePoint allows users to easily create KPI reports
-
-
Figure: PerformancePoint allows users to drill through on charts to get more details
Pros:
- Easy user interface for creating KPIs, Scorecards and Dashboards
- Can share the data using SharePoint
- End users can change the reports
- Full drill down and drill through support
- Rich client is deployed using ClickOnce
Cons:
- Requires SharePoint 2010 with PerformancePoint 2010 licence
Acknowledgements
David Klein