Developer Express XtraReports

Review Method:

XtraReports was tested with Visual Studio 2008 SP1 Team Suite Edition, .Net framework version 3.5, and SQL Server 2008 Developer Edition using the Microsoft Northwind database.  XtraReports is compatible with all editions of Visual Studio 2005 and Visual Studio 2008, including the free Express editions, with the exception of Visual Web Developer.

XtraReports 2009 volume 2 was downloaded and installed as part of the DevExpress Universal Suite but is also available separately as the XtraReports Suite, with or without source code.  An “XtraReports” menu is added to the Visual Studio application menu bar after installation.

XtraReports is targeted to the Visual Studio developer; it is not a stand-alone reporting tool, although it does have an End-User Designer discussed at the end of this review.

We examined XtraReports as part of a Microsoft ASP.Net Web Application, although we could have tested XtraReports in a Winforms application had we chosen to do so; XtraReports shares the same designer engine across both platforms.

Learning XtraReports:

New users can quickly become productive by exploring the XtraReports Suite overview web page at http://www.devexpress.com/Products/NET/Reporting/.  This page serves as a central menu of resources available to become acquainted with XtraReports including demos and tutorials.  Another very useful resource is the End-User Documentation page available at http://www.devexpress.com/Downloads/NET/Help.xml which provides documentation for download in both Microsoft help (chm) and Adobe Acrobat (pdf) formats.  Online support is provided at no charge to both registered and trial users at http://www.devexpress.com/Support/Center/.  Finally, Developer Express has announced the book “Professional DevExpress ASP.NET Controls” by Paul T. Kimmel, which includes a chapter on XtraReports, scheduled for release in November 2009.

Key Features:

The key points regarding the Developer Express XtraReports product include:

  • Visual Studio based designer
  • Code-behind and runtime customization via C# or Visual Basic code
  • Shared designer for Winforms and ASP.Net applications.
  • Available data sources include Dataset, IList, IListSource, and XML data sources
  • Report types include drill-down reports, mail-merge, master-detail reports, pivot grid, and side-by-side reports.
  • Report features include bar codes, calculated fields, charting, conditional formatting, design-time preview with search, filtering, grouping, importing, in-place editing, localization, multiple format export, report joining, rich text, scripting, styles, summaries, vertical anchoring, visual Inheritance, web caching, web document maps, web thumbnails, watermarks, and wizards.
  • End-User Designer
  • Royalty-free distribution
  • Source-code available

The XtraReports environment:

The first thing you may notice after installing XtraReports is that there is no XtraReport component in the new DX Reporting section of the Visual Studio Toolbox.  An XtraReport is added to a project by selecting either the XtraReport Class or XtraReport Wizard template from the Add New Item dialog in a Visual Studio project. 

The XtraReport Wizard offers to guide you through the creation of a Standard Report or a Label Report.  The Standard Report wizard prompts for a dataset name, a valid database connection, desired table or view, the desired fields, any desired field groupings, report layout, page orientation, report visual style, and finally report title.  The design surface appears with your selected elements, ready for viewing in the Preview or HTML View tabs.  The Label Report allows you to select from numerous predefined mailing label formats from a dozen manufacturers including the common Avery line.  Selecting the XtraReport Class template simply creates a blank report surface which is likely to be the preferred option for those already comfortable with the XtraReports designer.

Reports consist of one or more report bands including Detail, Group Header, Page Header, Page Footer, Top Margin, Bottom Margin, Report Header, Report Footer, and the Detail Report band.  Placing fields on the reports is as simple as dragging and dropping the fields from the dockable Field List panel visible when the Designer tab is selected.

The design surface clearly shows that a lot of thought has gone into making it easy to use. The report container, bands, and fields all feature a SmartTag that provides quick access to the most commonly needed settings.  See Figure 1 below.

DevExpressXtraReportDesigner.png
Figure1.  The Developer Express XtraReport Design Surface

A rich set of controls are available to enhance a report.  The XRBarCode control makes it a snap to add bar codes to mailing labels or product labels.  The XRChart control provides access to all the features of the XtraCharts Suite product for use in your reports. The XRCrossBandBox and XRCrossBandLine controls allow lines or boxes to visually cross multiple report bands for a more professional appearance.  The XRLabel is the primary control used to display source or summary field information.  The XRPageInfo controls makes it easy to add commonly needed report information into headers or footers, such as date, time, Page number,  “Page X of Y”, and username.  The XRPivotGrid is for easily creating cross-tab reports.  The XRRichText control displays formatted text including the ability to load or save RTF files. The XRShape control represents the selected shape of: Arrow, Brace, Bracket , Cross, Ellipse, Line, Polygon, Rectangle, and Star.  The XRSubreport control allows a XtraReport to be fully embedded within another XtraReport.  The XRTable control provides tabular row and column alignment of report elements.  The XRZipCode control  enforces a numeric zip code optionally with a dash.  If those controls are not enough, XtraReports supports the display of a large collection of Winform controls in an XtraReport; data is supplied to the windows control in the BeforePrint event of the report band within which it is contained.

XRLabel controls can automatically display summary information.  The range of the summary can be set to None , Group, Page, or Report.  Available summary functions include Avg, Count , DAvg , DCount , DStdDev , DStdDevP , Dsum , DVar , DVarP , Max , Median , Min , Percentage , RecordNumber , RunningSum , StdDev , StdDevP , Sum , Var , and VarP .

The XtraReports environment:

Despite the many controls and properties available on the various report elements to permit extensive customization, most report designers will eventually find themselves needing to add custom logic to the report in order to achieve the exact appearance requested by the report user.   Since an XtraReport is simply a custom .Net class, report objects possess standard .Net events and can be customized with code-behind written in Visual Basic .Net or C#.  XtraReports has a rich set of events.  For example, the BeforePrint event allows a report band to alter the display of the controls within it before display.

The data source for an XtraReport is typically a dataset, but can be XML or even a custom class. This gives the developer tremendous flexibility to prepare the report data in code before passing it to the report.  It is even possible to display a static XtraReport without any data source.  Additional flexibility is provided by the ability to create calculated fields with custom formulas in the report designer and treat them equivalent to any other field from the data source.

DevExpressXtraReportWebViewer.png
Figure 2.  The Developer Express XtraReport Report Toolbar and Viewer for ASP.Net

XtraReports are displayed to the user via an ASP.Net ASPX page that contains two XtraReport controls, the ReportToolbar and ReportViewer as shown in Figure 2.  Reports can be exported in PDF, HTML, MHT, Text, CSV, XLS, XLSX, RTF, and image formats.   See Figure 2 above.

Windows End-User Report Designer:

One of the true gems of the XtraReports Suite is the End-User Designer.  If you would rather not write every report that your users would like to have, you can provide the XtraReport End-User Designer to your users and encourage them to write their own reports. 

The End-User designer must be launched from a Winforms application (see Listing 1 below) but can be used to create reports for both Windows and the Web.  The design surface is very similar to the one in Visual Studio, making it easy for you to assist the user, but does not require Visual Studio. 

XtraReport1 myReport = new XtraReport1();
                  myReport.ShowDesigner();

Listing 1.  Custom code required to launch the End-User Designer in a Winforms application

The report’s data source can be set in advance and then hidden so that the user may not change it.  In fact, many facets of the user interface or item properties can be customized prior to display of the design surface to the end-user.  The designer and the report viewer can both be customized to use a Ribbon toolbar like that found in Microsoft Office 2007™.

The user may alter the report and make as many versions as desired.  Best of all, the End-User Designer is included standard in the XtraReports Suite and can be distributed royalty free with your application.  Note that for non-English speaking users, all user-interface text plus properties and their values are localizable.

Conclusion
XtraReports is an easy-to-use and comprehensive reporting tool that delivers most of the features that one could want for an application-based reporting product at a very reasonable price.  For those already comfortable with the Microsoft Visual Studio environment, creating a new report or modifying an existing report is straightforward.  For the ultimate in reporting flexibility, advanced users may customize the XtraReport engine itself with the available source code and distribute the modified reports under the same royalty-free license.

At the time of this review, Developer Express XtraReports is available for $349.99 per developer or $499.99 per developer with source code.  Reporting is admittedly a dry topic and not all that exciting until you get a chance to experience the power of Developer Express XtraReports, especially at this cost.

Sister Sites

Best Programmer Tools
.NET B.I.
.NET Dashboards
.NET DocGen
SharePoint B.I.
SharePoint Dashboards
SharePoint DocGen
SharePoint Reports
Java B.I.
Java Dashboards
Java DocGen
Java Reports
Business Reporting Software

Search

Wikis

Arrow for SharePoint
Windward Reports
more soon...

Programs

ComponentOne
Crystal Reports
DevExpress
Intelliview
LogiXML
Office Writer
Panscopic
Sql Server Reporting
Windward Reports

Check out Windward Reports