Reporting has always been a sore spot for application developers. Most applications require some sort of output, either on screen or in printed form and there have been a variety of tools that developers have tried over the years to help them quickly create this output without having to invest the time and effort in coding a solution themselves.
The most popular of these tools has been Crystal Reports, which was bundled with early editions of Microsoft Visual Studio and is widely considered to be the first Windows report writer. Since that time, there have been a number of products that have been introduced for developing and integrating reports into applications, offering developers a wide range of features of functionality they can integrate into their application with little or no coding.
In this round-up of reporting tools, we are going to look at some of the most popular reporting tools for developers, including tools for .NET, Java, COM and Open Source development projects. Our review of these tools is based around the following criteria:
- Data source support
Why types of data sources does the tool support? Is support limited to only the most popular database formats? Is there a data-source API available for data sources where a driver is not available? In addition, does the tool support the use of stored procedures and allow advanced SQL to be used as the basis of the report.
- Report designer
We take an in-depth look at the report designer itself. How well it is organised, and how easy is it to learn how to use it. We also will measure the ability of the report designer to create a specific report format, as well as how much coding was required and if the tool supports WYSIWYG development, and so forth.
- Report presentation
It’s important to look at what types of reports can be created using this particular tool and what report formats does it support (i.e. tables, banded reports, graphs, charts, etc.). In addition, does the tool support complex reports that incorporate different sections or sub-sections, combining different report types and formats.
- Output formats
Users often want to take report output and perform further analysis or distribute the report to other users. This criteriaon looks at the output formats that the tool supports and how well the export and output functionality works. Also covered here is the suitability of the exported file. For example, most tools support exporting to Excel, but does this export provide a usuable spreadsheet?
- Report integration
Integrating reports into existing applications should be a straightforward process and here we look at how the integration works, as well as how easy it is to get started with a particular tool or platform. We’ll also quickly run down some of the development platforms that each tool provides, as well as some of integration tips and tricks we found when testing these tools.
As with any review, we weren’t able to cover every reporting tool on the market but we attempted to cover a good cross-section of platforms and tools, including an open-source alternative to commercial offerings.
ActiveReports for .NET
Vendor: Data Dynamics
Price: US$499 for Standard Edition
ActiveReports for .NET from Data Dynamics is the unsung hero of .NET reporting. In a category traditionally dominated by high-priced reporting, ActiveReports has been a affordable alternative that packs in just as many features.
Using ActiveReports you can create reports from OLEDB and SQLClient data sources within your .NET application, as well as XML, ADO.NET data sets, views, tables and row collections, as well as unbound data (i.e. data that is not bound to a specific data set until the report is run.)
As ActiveReports has been around for a while, the report designer itself has been improved through a number of iterations over the years and Visual Studio developers should feel right at home, as it is integrated within the Visual Studio.NET IDE. With a logical organisation and workflow, little training is required to start using the tool, with most developers preferring to jump into the tool first and read the documentation later.
Figure 1: ActiveReports in action
ActiveReports supports multiple reporting formats and there are a number of sample reports to demonstrate how the tool can be used. These samples provide a good starting point for your own development and ideas and it is easy to combine different types of report sections into one report. In addition, you can host third-party controls for charting, images, etc. to extend your report design, meaning you aren’t limited to just the features that ActiveReports includes. On the export side, ActiveReports supports RTF, PDF, Excel, HTML, TIFF and text file exports with good results.
For integrating reports into your application, ActiveReports has a number of sample applications to point you in the right direction and the documentation includes full code listings that will allow you to cut and paste code directly into your own application. You can be quite creative with where you place the reports within your application and a well-documented API make customising the report at run-time a snap.
Vendor: Business Objects
Price: $685 for Developer Edition
Crystal Reports from Business Objects is one of the most familiar tools for developers, through it’s long association with Microsoft and Visual Studio. There are actually two editions of Crystal Reports that developers can use-- Crystal Reports for Visual Studio.NET is the bundled report writer that is included with Visual Studio.NET versions, which Crystal Reports 10 is the stand-alone, retail edition that developers can upgrade to or buy outright. For this review, we will be looking at the latter as most developers upgrade to get the latest features and functionality.
Crystal Reports can report off of a number of different data sources through ODBC, OLAP and direct database drivers and can connect to custom data sources as well. When creating a report from a data source, you can simply drag-and-drop fields onto your report and Crystal Reports will build the SQL automatically for you or you can write your own SQL statement.
The report designer itself is intuitive and there are a number of “experts” or “wizards” to guide you through common reporting tasks, like creating a basic report, creating a running total, and so forth. The number of report formats that Crystal Reports supports is limited only by your imagination and how much time you have on your hands.
A single Crystal Report can include multiple sections (including types of sections, i.e. 2 page headers) and multiple objects in those sections, including charts, graphs, cross-tab tables, geographic maps, formulas, etc.
Figure 2: A typical Crystal Report featuring a pie chart
For exporting a report, Crystal Reports supports over 16 different formats, including HTML, DHTML, PDF, Excel, Word, RTF and Text formats, with special export options for making reports exported to Excel more functional.
On the integration side, Crystal Reports has the widest platform support of any of the tools we looked at in this review, including integrated IDE support for tools from Borland and IBM, as well as platform support for COM, Delphi, .NET and Java. The documentation and samples that ship with the product are good and there is a strong third-party community of Crystal Reports developers that keep Web sites and resources updated.
The one area that developers will struggle with when integrating Crystal Reports is scalability. Business Objects makes it’s money through selling products and licenses, including an enterprise reporting solution called “Crystal Enterprise”.
Developers who want to build large-scale applications will find themselves either purchasing additional licenses or changing their application to work with Crystal Enterprise to get the kind of performance they need. The pricing for these solutions can be prohibitive for developers, especially when other reporting products provide a scalable framework for reporting for the original product price.
JasperReports is an open-source reporting tool for Java that can be used to create simple reports for integration within a Java application. To use JasperReports, you will need to download the JAR files or source code from SourceForge. The report framework itself is very basic and has only a fraction of the features you would find in a commercial product. But with that said, the basic features you would expect to create presentation-quality reports are there, if not as polished as it’s commercial counterparts.
To create reports, you will need to know XML pretty well, as there is a lot of hand-coding and editing required. Alternately, you can download one of the open source report designers that is available for JasperReports (a list of which is available here).
Figure 3: A typical Crystal Report featuring a pie chart
The samples that come with JasperReports are very simplistic, so don’t expect to create complex reports off of the bat. You may be able to work with the tool to create more complex reports for your own uses, but it is difficult to work with (even with one of the afore-mentioned designers).
For exporting, JasperReports supports PDF, HTML, XLS, CSV and XML file formats. And the integration options for integrating JasperReports into an application are simple but effective and most Java developers will be able to pick the skills up quickly to preview, print and export reports.
Price: on application
JReport from JinfoNet Software is a reporting suite designed for Java developers which is 100% J2EE and can be used to embed reports into Java applications.
The JReport Designer is a drag and drop report designer that you can use to create reports from a number of different data sources, including JDBC, XML, EJB and others using the built-in data source API.
To make it easier to work with these data sources, JReport also features a GUI query editor which you can use to write the SQL queries that serve as the basis for your reports. And if you have invested heavily in data processing on the server side, JReport supports the use of stored procedures as well.
For the “newbie” JReport developer there are report wizards available to help you build some of the most common report formats (tables, cross-tabs, graphs, etc.) In addition, the designer features an intuitive interface that most developers should be able to pick up on quickly.
At the presentation layer, JReport does go beyond other Java-centric reporting offerings in it’s support for TrueType fonts, making the reports more readable and solving some of the cross-platform issues experienced with other tools. JReport also features two and three-dimensional charting with over 50 chart and graph formats available and a robust chart API that can be used to import charts and graphs from other packages.
For output, JReport supports most of the formats you would expect including HTML, DHTML, XML, Text, PDF, RTF, CSV, Excel and Postscript. The majority of these formats provide a good quality export of the report, with some formats preferred for different uses (i.e. PDF or Postscript for printer-quality files) and the Excel export provides a spreadsheet that you can work with but like most tools we looked at not designed for Excel output, the results can be mixed depending on the complexity of the report.
Calculations in your report can be performed using any of the 160 built-in functions and using the user-designed objects API you can import your own Java functions to extend JReport as required. This is a definitely time-saver for Java developers who have made a significant investment in creating their own logic and functions.
From an integration standpoint, working with JReport is a breeze. Clearly documented API’s makes things easier from the start and you will find for a quick view-only integration, you won’t spend more than an hour or so integrating it into your application. And for desktop applications, JReport can be deployed in a stand-alone application using beans for the report engine and report viewer.
In addition to the JReport Designer, Jinfonet also has a server-based solution, JReport Enterprise Server that you can use to create multi-tier reporting applications if you need to add some grunt to your reporting apps.
Microsoft SQL Server Reporting Services
Price: : included with SQL Server licence
Microsoft SQL Server Reporting Services is a relatively new player in the reporting tools market, but is quickly making up for lost ground. Reporting Services is an add-on to SQL Server 2000 and features a report designer that runs within Visual Studio.NET.
You can use reporting services to report off SQL Server and analysis services and off of most databases using .NET data providers, ODBC and OLE DB drivers. The report designer itself features a wizard that you can use to get started creating your own report, but it is a bit rough around the edges, especially when it comes to selecting the tables, joins, etc. from your data source.
The report designer itself suffers from the same problem and it takes a bit of practice to become proficient. In addition, you won’t find some of the same formatting features found in other reporting tools but this is just the first release of the product. With that said, Reporting Services supports most of the report types and formats you will want to create.
Export formats include all of the usual suspects, including HTML, MHTML, PDF, TIFF, and Excel. You can also export to HTML pages using the Office Web Components, which will allow you to leverage the features within Office applications to perform further analysis on your report data.
Report integration is another area where Reporting Services will need to raise it’s game before the next release, due to ship with SQL Server 2005. The methods available to integrate reports into applications is limited and cumbersome to work with. If you do plan to use Reporting Services, it is best to just point users to a URL where they can view the report, as opposed to trying to integrate the report into your application.
But as the saying goes, you can’t beat the price. Reporting Services is not free (as many people think) but the licensing is include in your SQL Server license, which can make Reporting Services an attractive alternative. With a host of new features and functionality slated in version to be released with SQL Server 2005, Reporting Services may become a giant-killer.