This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Windward Reports offers a suite of reporting packages composed of four products able to work independently or collaboratively:
* Windward Reports Engine. The engine is pure Java (there's also a pure .Net version) and is similar in functionality and capabilities to the majority of industry reporting packages, although it has additional functionality. The engine runs on one or multiple servers as part of an enterprise's server-based application. The engine can be called from Java code integrated as a Java Servlet/JSP or directly from the command line via a batch file or shell script. The engine is typically deployed as a set of JAR files and wrapped into a standalone application or deployed to a web application server such as Apache Tomcat, IBM Websphere, or Oracle WAS.
* Autotag. AutoTag is Windward's report design tool that allows users to create report templates in Microsoft Word, Excel, and PowerPoint.
* AutoTag Max Windward's complete desktop reporting solution, AutoTag Max, is an enhanced version of AutoTag that includes an express server and automatic report scheduling.
* Arrow for SharePoint. Windward Arrow 3.0 extends SharePoint to deliver an enterprise reporting, document management, dashboard and business intelligence system. Arrow 3.0 for SharePoint lets a community of users design, run, and share reports.
The review was completed by installing and testing the Windward Reports Engine as well as the report design tool AutoTag.
Getting the Windward Reports .NET engine up and running is a simple and straightforward process. First we downloaded the correct installer from the latest versions download page. From there the package was installed with reference to the online documentation, although considering we got through the install without a hitch I doubt the vast majority of users will need the guide at all.
The instructions available online can guide you through installing the engine and the installer will add both WindwardReports.jar and the third-party libraries to your classpath. After this you'll only have to install AutoTag, which automatically detects any other components on your system and installs only what's necessary.
After the installation we were able to immediately start designing report templates. Windward Reports' design tool, AutoTag, is an add-in to Microsoft Word, Excel, and PowerPoint so report creation was a much simpler process than with the other tools we evaluated. We simply opened Word and began adding the desired elements to our template (headers, footers, text blocks, charts, graphs, images, tables of contents, etc.) using Word's built-in commands. Because we were already familiar with Word this interface took us much less time to master than any of the other report design tools we found. Nearly all the features in Office were available to us, with the exception of some minor formatting tools that we worked around.
We also appreciated the fact that AutoTag is a non-banded design tool. This not allowed us greater freedom in report design – we could lay out elements as we wished on the page, rather than stacked across the page – but it saved us significant time compared to using the banded-design method found in other reporting packages.
One of the features that stood out was charting. Reporting programs often stumble with charting, but this is another area where Windward stood strong. We didn't have to go through a lot of additional or complicated steps other reporting packages require. The charts were fairly easy to create, had a wide range of layout and theme options, and were accompanied by solid examples in the sample templates and written documentation.
We also designed reports in Excel, which ran as smoothly as the process in Word. Of particular note was the ability to use Excel's dynamic formulas which expanded intuitively with our data. For example, in an invoice table we set one cell to sum the product subtotals (=SUM(E4)). When we generated the report the cell summed all the data in the product subtotals column (cells E4 through E10) instead of a single cell.
Connecting to an SQL database was a simple, guided process. We launched the connection window and were able to easily choose the appropriate database from a list of databases Windward handles: SQL Server, Oracle, DB2, MySql, PostgreSQL, OleDB, ODBC, or any other ADO.NET provider installed. Windward also handles XML file and Excel spreadsheet data sources and you can connect to them in any order. The system searches for matching databases and presents you with a list and also saves the most recent connections in a drop-down menu. After testing our connection with a button click, we were able to begin tagging our template.
Windward Reports touts itself as a reporting solution for the business user, and this claim is true for the large majority of the data insertion process. The business professional can use the Data Bin – a drag-and-drop tool – to place tags into templates. Plus, with user-defined tags (UDTs) we were able create a template without having to create a single tag because we used an existing template's tags and tables to create new tags for other templates. Programming knowledge is fundamental in some cases, but we found it wasn't necessary to write complex scripts by hand because Windward's wizards and intuitive windows walked us through creating a range of select statements. And a validate tool checks the syntax of the tags before running the report, so we could find and fix errors before running the report.
The large variety of tags made it quick and easy to place dynamic data into our reports:
Out Tag: The most basic and most common tag, it took just seconds to use the out tag to insert a piece of data into our templates.
ForEach Tag: There was no complicated process for iteration over a set of records. Instead of having to manipulate the Group section and Details section of the development environment like other reporting packages, we used a simple tag that allowed us to loop through our data.
If and Else Tags: To get the effect of conditional actions, we simply used tags that allowed us to create select statements without hassle. No complicated sections or tricky fields required.
Chart Tag: The chart tag let us create a series of selects to define data to be displayed in charts and graphs. The tag interface's Select Data icon walked us through selects for the chart's rows and columns, and formatting the chart (selecting color schemes, adding titles and other text, etc.) was easily done from within the tag.
Matrix, Column and Row Tags: We weren't restricted to creating rectangular tables. The matrix tag let us create a table with as many cells as we needed, and the rows or columns expanded automatically depending upon the data. Link Tag: Our database contained a number of stored URLs, and we were able to use the link tag to dynamically generate hyperlinks when we ran our reports.
Import Tag: Our database also contained a number of text and PDF files. Rather than manually inserting them, we used the import tag to insert the content on the fly. We also used the import tag to embed templates within templates (a really cool feature!).
Query and Set Tags: To save time, we used the query and set tags to create variables and use them elsewhere in the template. It saved time not only during report design but was especially noticeable when running the report, because the template didn't need to repeatedly re-access an extremely large database.
Windward Reports offered us nine different output formats: HTML, PDF, DOCX, XML (Word), RTF, XLSX, XLS, PPTX, and direct to a printer. For the most part the final report rendered as we expected it to, although there were some minor formatting issues for which we needed to return to the template and make tweaks. (Namely, tables in Excel needed cells expanded to fit our data and some line drawings in PDF reports were not completely true to the original image in the template). Two other products from Windward, AutoTag Max and Arrow for Microsoft SharePoint, allowed us to schedule reports to be run as needed and they also allowed reports to be emailed directly to third parties and unlimited iterations stored where we instructed. In addition, Arrow for SharePoint gave us the ability to set permissions so authorized colleagues and others could view, share, and edit reports.
In our experience, support is where Windward Reports really shines. Their detailed documentation covers everything from installation to program use to system administration maintenance, and there are also short "getting started" guides that helped us get up and running quickly. The website offers written tutorials, video demonstrations, and paid support.
Overall, Windward Reports outperformed the other reporting programs we evaluated. We found only a couple of features that could have been improved (the XPath and SQL wizards don’t allow for comparison of fields, and there's no IDE interface), and Windward Reports' robust feature set and ease of use make this a top-rated reporting solution.