Skip Navigation LinksHome > SSW Standards > SSW Rules > Rules To Better Reporting Solutions

 

What others have to say about us
See what people think about this product 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. See what people think about this product
- Leon Bambrick,
 

Do you agree with them all? Are we missing some? Let us know what you think.

Rules to Better Reporting Solutions

  1. Do you use the best tools to present Reports to users?
    1. Reporting Services (Windows and Web)
    2. ASP.NET (Web)
    3. Crystal (Windows and Web)
    4. DataDynamics Active Reports (Windows and Web)
    5. XML/XSL (Windows and Web)
    6. Access (Windows and Web via SSW Access Reporter for IIS)
    7. Outlook Web Components (OWC)
    8. OLAP - Data Analyzer (aka Microsoft's Rich Client Solution)
    9. Excel 2007 & Data Visualization (Windows Clients only, but can run over Web)
    10. OLAP - 3rd Party
    11. Conclusion
  1. Do you use the best tools to present Reports to users?

  2. 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:

    1. Detail Reports - Printable reports that show detailed information for each row in the database. (e.g. an Invoice)
    2. 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.

    1. Reporting Services 2005 (Web and Rich Client)

      http://www.microsoft.com/sql/evaluation/bi/reportingservices.asp

      Pros

      1. Short development time - 3 hours for sample report.
      2. No Code.
      3. You can Export reports to a large number of different formats right out of the box (Excel, PDF, HTML, Office Components, Images).
      4. You can Schedule report execution and have your reports emailed automatically to you or a list of recipients (via Data-Driven Subscriptions).
      5. You can use Visual Designer built into Visual Studio
      6. Ad-hoc Reports can be created via the Report Builder (a .NET client deployed via ClickOnce)
      7. Parameters are easy to add to the report and bind to the data.
      8. Grouping is simple.
      9. Drill Down without needing a tree view control.
      10. Built-in security module out of the box

      Cons

      1. 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 2 (see below)
      2. Query string doesn't change when you change the parameter values in a report. You have to re-submit the page (no AJAX).
      3. Limited charting capabilities (e.g. doesn't support multiple values against one axis - you need 3rd Party Charts to do this)
      4. 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).
      5. Difficult to integrate user input and dynamic behaviours.
      6. Printing support is mediocre - there is no pixel-by-pixel control possible.
      7. There is OLAP support but you need to know MDX.
      8. Doesn't support offline running without installing Reporting Services locally.



      Figure: SSW Product Download Report (Reporting Services 2005)

      Conclusion

      Reporting Services is the way to go if you do not need

      1. Dynamic grouping.
      2. To write to your database via the report.

      Demo

      SSW Exchange Reporter (Samples)

      Note: When comparing two sets of values in a report, you will avoid showing change as a percentage

    2. ASP.NET 2.0 (Web)

      Pros

      1. Query Strings supported (e.g. URI can be emailed to another user who can then see the correct report).
      2. Complete Control over the parameters - e.g. "Current Month" hyperlink
      3. Complete control over the rendering of the output
      4. Can edit data via Databound Controls
      5. Sorting via hyperlinks possible

      Cons

      1. Long development time of sample report - 8 hours to convert including formatting, sorting and adding 3rd party parameter controls (like Date Time Pickers).
      2. Difficult to create reports that print adequately, although it is possible to do with CSS Printing.
      3. Mutliple Page reports impossible.
      4. Cannot run offline unless the database is replicated and hosted locally (not recommended)
      5. Very difficult for Users to create reports
      6. Graphs - To show a graph you need to code OWC to generate a .png or get a 3rd Party Control like Dundas Charts
      7. No Date/time picker built in - have to use a 3rd party control or the AJAX Toolkit (or write your own)
      8. No export to PDF or other formats - you have to install Acrobat and print to PDF from the browser
      9. No nice Reporting Services interface - you have to create the navigation yourself
      10. Have to configure security from scratch (e.g. using the ASP.NET 2.0 membership and roles providers).
      11. Hard to do drill-down. To do this, you need a treeview with code
      12. There is OLAP support but you need to know MDX.

      Conclusion

      Good if you:

      1. Want to edit data in your report (e.g. the ASP.NET 2.0+ Bindable controls like the DataList and GridView have edit modes)
      2. Want dynamic grouping and cannot go to OLAP

      More at http://www.asp.net/ReportsStarterKit/ 

      Demo



      Figure: SSW Product Download Report (ASP.NET 2.0)


      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 2.0 - 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 2.0 - Implement the bar chart in the grid;

    3. Crystal Reports (Windows and Web)

      Report in Crystal Report

      Figure: We used Crytal (Windows) for our SQL Auditor tool to support disconnected opterations.


      Pros
      1. Quicker to develop than ASPX (around 5 hours for the sample)
      2. (Windows Client) Doesn't require a server-based product like SQL Reporting Services - can run offline
      3. Great Printing - Easy to export to .pdf for printing
      4. Easy to export to .xls for analyzing
      5. Very fine control over output appearance.
      6. Integrates well with .NET Strongly Typed Datasets and Objects.
      7. Good Drill down feature.
      8. There is OLAP support but you need to know MDX.

      Cons
       

      1. Custom Development environment
      2. Licensing is very expensive for more than 5 concurrent reports
      3. No sorting hyperlinks
      4. (Windows Version Only) QueryString cannot be emailed to another user
      5. 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."

    4. DataDynamics Active Reports (Web and Windows)

      Basically an alternative if you were to choose Crystal. http://www.datadynamics.com/ You are going to a site outside of SSW

      Pros

      1. Cheaper Licencing than Crystal (Royalty Free)
      2. Xopy deployment of reports
      3. (Windows Client) Doesn't require a server-based product like SQL Reporting Services - can run offline

      Cons

      1. Support for product not as widespread
      2. Not in bed with Microsoft like Crystal
      3. There is OLAP support but you need to know MDX.
    5. XML/XSL (Windows and Web)

      Pros

      1. Can do great things like http://www.amorphous-media.com/client_demo/xmlreports/student_app.htm You are going to a site outside of SSW
      2. Can have client side filters and sorting
      3. (Windows Client) Doesn't require a server-based product like SQL Reporting Services - can run offline
      Cons
      1. Very long development time
      2. Impossible to make it print for multiple page reports.
      3. There is OLAP support but you need to know MDX.
      Report in XSL

      Figure: We used this method for reporting in the SSW tool Code Auditor (a Windows Forms application)

    6. Access (Rich Client and Web via SSW Access Reporter) 

      Pros

      1. Good Report development environment
      2. Very good printing support
      3. (Windows Client) Doesn't require a server-based product like SQL Reporting Services - can run offline

      Cons

      1. Access needs to be on the machine generating the reports (e.g. on the server when using SSW Access Reporter)
      2. Need an Access License
      3. Not designed natively for the web
      4. No drill-down features
      5. No OLAP support
      6. (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

    7. Office Web Controls (OWC)

      Pros

      1. Allow you to embed interactive office documents in to HTML
      2. Supports updates to the datasource via the control
      3. Easy to create - just save a document in "Interactive HTML format"
      4. Supports pivot tables, spreadsheets, charts

      Cons

      1. Require a download or to have office installed (typically you would only install on an intranet)
      2. They run as an ActiveX control - so have limited access to your local system

      http://www.ssw.com.au/timeproonline/Report/ProductDownloadGraph_OWC.aspx

    8. Report in OWC
      Figure: Office web components enable interactive charts inside your browser, but require Office to be installed

    9. OLAP - Data Analyzer (aka Microsoft's Rich Client Solution)

      Pros

      1. A visually appealing UI.
      2. Full drill-down support.
      Figure: Office Excel 2007 delivers new powerful data visualization tools
      Cons
      1. No longer supported. This functionality has been moved into Excel 2007.
      2. Microsoft dont have a web version of Data Analyzer.

    10. Excel 2007 & Data Visualization (Windows Clients only, but can run over Web)

      Figure: Office Excel 2007 delivers new powerful data visualization tools

      Pros

      1. Can run over the Web via Web Services
      2. Hides the Complexity of OLAP
      3. End Users can change it; most users are very familiar with Excel
      4. A visually appealing UI 
      5. Full drill-down support with support for Cubes

      Cons

      1. Requires rich client Install
      2. Requires the Excel 2007 License
    11. 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 

       

    12. Conclusion

      For all reports, the most critical factors for SSW are:

      1. Development time
      2. Offline support (only if absolutely neccessary)
      3. Having drill down functionality (for summary reports)
      4. Having the ability to put the reports on the web.
      5. 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 will 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:

      1. Web and Windows - Reporting Services
      2. Web Crystal Reports
      3. Windows Crystal Reports
        Note: the same report can be used on both web and windows
      4. Web Active Reports
      5. Windows Active Reports
        Then
      6. Windows - Access
      7. Windows - Excel
      8. Web - ASPX
      9. Web - XML/XSL inside an ASPX page

      Which solution will 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):
      1. Web and Windows - Reporting Services
      2. Web - ASPX
      3. Windows - Excel and 3rd Party OLAP Tools
      4. Web Crystal Reports
      5. Web Active Reports
      6. Windows Crystal Reports
      7. Windows Active Reports
      8. Windows - Access
      9. Web - XML/XSL inside an ASPX page

    Acknowledgements

    David Klein