Crystal Reports XI is the latest version of the report writer from Business Objects. Local reports guru David McAmis takes the new version for a spin. Most developers might know Crystal Reports from versions included in Studio, Visual Studio.NET, and other popular developer IDE’s such as BEA Workshop, C# Builder, Delphi 2005, JBuilder, WebSphere.
In this latest installment both report and application developers have something to be excited about as there are a host of new features for report design and integration. Here’s a run-down of what you can expect in this release.
Updated Report Designer
The first thing developers will notice when they first open the Crystal Reports XI designer is a new user interface. The changes to the UI are apparent from the start, with a new “Start Page” that features links to external resources, sample reports, a list of report wizards, and the most recent reports you have been working with.
The toolbars and icons have also been updated and developers who are familiar with Crystal Reports will notice that when you open multiple reports, a new tabbed interface has been included to allow you to switch quickly between open reports. The report designer also features a new “Project Workbench”, shown below in Figure 1, that you can use to organise reports into projects and publish these reports en-masse to Crystal Reports Server (which we will look at a little later)
FIGURE 1: The new Project WorkbenchThe report designer still features the same tools you may have used before. You can use these to insert groups, summaries, charts, maps, running totals, and more into your report with ease. The one new feature that will have developers jumping for joy is the new dynamic parameter fields.
Previously in Crystal Reports, parameter fields were static. So if you wanted to display a parameter field with a list of employee names, for example, you could populate a pick list while you were designing the report. When the report was run, this same pick list would be displayed and the user could make their selection. The only problem with this is when a new employee was added, the list of values did not change. You would have to go back into the report and manually refresh the list yourself. This caused most application developers to create their own custom user interface for passing parameters to the report itself, which was often costly and time-consuming.
With the new dynamic parameter fields in Crystal Reports XI, this custom development should become a thing of the past. When you create a dynamic parameter field in Crystal Reports XI, you can specify a database table, view, etc. as the dynamic source for the pick-lists or you can use an SQL command that will retrieve the values, each time the report is run, as shown in Figure 2.
FIGURE 2: Dynamic parameters in actionIn addition, this version introduces the concept of “cascading” parameters, where the values shown in a list of values are determined by your previous selection. For example, going back to our previous example, you could set up two parameters, “Manager” and “Employee”. Whenever you selected a manager, the next parameter value list would be filtered to only show those employees who work for that manager.
This flexible approach to report parameters should mean less time coding custom application pages for reporting and more time spent getting on with the application development.
In terms of time-saving features, the updated charting components make it possible to simply insert a chart into your report and let Crystal Reports decide what data and chart type should be created. Often this will not be the final desired result, but it does make it easy to quick pull together visual, information-rich reports without having to click through multiple dialogs to get a simple chart.
This same concept has also been applied to cross-tabs, with a single click all that is required to place a cross-tab object in your report. Unlike charts, there isn’t an easy way to automatically select the content for the cross-tab but just the creation of a blank cross-tab is enough of a time saver to make you want to use cross-tabs again.
New Developer Features
For developers, there is a grab-bag of new features regardless of whether you develop in .NET, COM or Java. To start, Crystal Reports XI now includes the ability to store images external to the report file itself. This may seem like a small thing, but it has been a sore point with developers for a while, especially with web developers who want to use Crystal Reports in Web applications but don’t want to store the images in the report itself, which could increase the file size dramatically.
In addition, the use of CSS Style Sheets has been better documented in this version, making it a viable option for Web developers who want to integrate reports with the same look-and-feel into their web applications.
For application developers integrating reports into their .NET applications, the viewer components have been updated (Figure 3) and include all of the new features found in the report designer (dynamic parameters, new export formats, etc.). There is a setting to disable tool-tips, which was an annoying feature in previous versions, as most report developers would not enter tool-tips for each element on the report.
FIGURE 3: Updated report viewerAnd at long last there is a single merge module you can use to deploy your application, which makes creating installation and setup packages much easier. There has been a renewed focus on this area with this release and it is now possible to setup packages that install right the first time.
On the Java side of things, the enhancements are along the same lines, with the exception of dynamic parameters which didn’t make it in time for the first release. However, there are enough new features though to keep most Java developers happy, including a new JavaServer Faces(JSF) Viewer and set of custom JSF tags to cut down on development time.
There are a number of enhancements to the Java API itself, with additional methods that give more control over the data source and location. There is also an updated version of the Java Reporting Component that brings it closer to rough parity to with the other platform API’s.
Updated Server Technology
This version of the product not only includes new features, both for report design and application development but also brings together the platform components from Crystal Decisions and Business Objects. Business Objects bought Crystal Decisions over a year ago and this version represents the first “combined” product featuring the tools and functionality from both product lines.
The first immediate benefit for application developers is Crystal Reports Server, which provides a subset of the features and functionality found in Business Objects Enterprise, which is an enterprise framework for publishing reports to the Web, as well as scheduling and distributing reports in a secure environment. And in addition to the subset of features, it is also a subset of the price, at around AU$12,000 for 5 concurrent users.
Crystal Reports Server brings the core report scheduling and distribution framework and functionality to application developers, which they can use to create scalable, multi-tier applications for small to medium-sized user bases. And when scalability to thousands of users is required, there are only minor changes required to use the same code with the full-strength Business Objects Enterprise.
It also bears mentioning that the licensing within both Crystal Reports and related products has been simplified and now is much more competitive with other products in the market. For most internal applications you won’t need any additional licensing and if you are developing applications for commercial distribution, there is a free runtime for thick-client applications and simplified process for any components that are licensed and would require a software license.
So in the end, this release offers a little bit of something for everyone. Report developers will love the new look and feel and features found in the report designer itself, while application developers can look forward to an updated set of tools and technologies to help them easily integrate reports into their application.