JasperReports (see http://www.jasperforge.org) is an open-source, Java-based reporting platform. I’m here to tell you that it deserves some serious consideration.
At one of my companies, we’ve been looking for a reporting mechanism for our PHP/MySQL application for some time now. Crystal Reports was not an option, since it doesn’t run on our server platform (Mac OS X) and its licensing costs are prohibitively expensive. Plus, we really wanted to stay all open-source.
JasperReports has a front-end report designer, iReport, which is also Java-based and runs nicely on both Windows and Mac. It’s similar to the Crystal client, although much more light weight. iReport creates report files in XML, which are then compiled into a binary format for use by the reporting server. The server itself is a java web application which fills the report from the datasource and creates the output, which can be HTML, XML, CSV, Excel, PDF, ODT or even Flash. There is also a viewer applet which can be embedded in a web page for inline viewing, printing or export.
In order to use the JasperReports framework, because our application is based on PHP, we had to implement the PHP-Java bridge. We chose Tomcat as the Java application server, again because it is lightweight, open and well-supported and runs nicely on the Mac. This all works out quite nicely.
My next personal goal is to figure out how to integrate JasperReports into a .NET environment.