Top 10: Why ReportMill is best for
Java Application Reporting!

1. Object Reporting

Unlike its competitors, ReportMill isn't simply a database reporting tool re-targeted at the Java market. ReportMill instead reports directly on the same Java objects that you've already cached in your application. And it talks to your objects automatically, using Java reflection (java.lang.reflect) which means that you can turn absolutely any Java dataset into PDF/HTML/Flash reports from absolutely any part of any Java application with no additional wiring.

Object Reporting means no repackaging of the current dataset as an SQL query, no redundant connection to the database and no redundant fetch. This makes ReportMill an order of magnitude faster than traditional database reporting tools.

2. Leverages Custom Business Logic

Even if you can afford to ignore the inherent inefficiency of database reporting for Java applications, you can't get around the fact that to create useful reports, you need more than raw database attributes - you need the custom business logic that has already been added to your Java object model. Traditional database reporting tools require you to recode this business logic in their proprietary macro language, in each and every template, with no debugger support, source code control, or code reuse.

ReportMill allows you to use the same Java code to present report data as you use for your JSP/HTML pages and Swing GUIs. ReportMill also automatically takes advantage of the security model built into your application.

3. Simple Integration

ReportMill is packaged as a single Jar file and neither has to be "installed" nor "configured". Simply copy the single, compact ReportMill.jar into the classpath on your developer and deployment machines. You can then call the ReportMill API to turn any Java dataset in your Java applications into professional reports.

ReportMill's integrated architecture eliminates a potentially troublesome point of failure associated with traditional database reporting tools, which generally run as a separate process (and sometimes on a separate machine). Embedded reporting is easier, faster, more reliable and more secure.

4. Simple API

ReportMill has basically one line of code: template.generateReport(yourObjects). The argument to generateReport() can be any valid Java dataset: a list of EJBs, Custom Java classes, Java Collection classes or even a JDBC ResultSet. 99% of ReportMill developers only need to call these three lines of code:

	// Load template, generate report and get PDF!
	RMDocument template = new RMDocument("MyTemplate.rpt");
	RMDocument report = template.generateReport(myObjects);
	byte pdf[] = report.getBytesPDF();

ReportMill's focus on a simple API and its use of a layout application to solve most problems saves developers immeasurable time writing, debugging and maintaining code to generate reports.

5. Powerful Page Layout Design

ReportMill uses the familiar Page Layout paradigm - even the most novice users can quickly open a new document and draw cover pages, add titles, drag and drop company logo images, add page headers and footers, summary pages and more. This is much more intuitive and powerful than the traditional "document strips" method of report design found in almost every other reporting tool.

Your reporting tool is your link between the world of databases and graphic design - and a reporting tool can only generate professional quality reports to the extent that it has the ability to create a professional quality document. ReportMill contains illustration features found only in the world's most powerful page design applications: rich text editing, powerful line art tools, full image support, multi-page editing, page layering, textures, gradients, rotation, scaling, unlimited undo and even powerful animation authoring.

6. XML based template design

Other design tools lock you into database datasources by forcing you to connect to an existing database for template design. ReportMill allows you to design sophisticated templates tailored to the Java object model in your Java application, either by accepting an XML description of your Java objects or by simply typing in keys that you know will correspond to publicly available methods and instance variables at runtime. If you don't have an XML sample of your Java objects, ReportMill will generate one for you from any Java dataset, with just one line of code: new RMXMLWriter().writeObject(yourObjects).

7. PDF forms markup

ReportMill is the only reporting tool available that not only generates PDF, but can also read PDF. In conjunction with ReportMill's unique page layout interface, this feature can be used to drag and drop an existing PDF document right into an open ReportMill document, for easy forms markup. In this manner, your application can easily automate filling out any paper based forms in your organization, with one line of code.

8. Desktop Viewer

ReportMill has a powerful desktop viewer for viewing reports on the desktop or in the browser. The viewer support text and image selection, RTP and JPG export, page navigation, find, Zoom, PDF export and print support.

9. Java Web Start launching

ReportMill is the only Java reporting tool to leverage Sun's powerful web-based application launching and updating system, Java Web Start. This means that ReportMill is particularly easy to launch and evaluate (just click the link on our webstart page!). More importantly, Web Start ensures that every time you run ReportMill, you are always running the latest updated version.

Additionally, Java Web Start enables one of the most startling features in the world of reporting: you can actually configure your web application to dynamically launch the ReportMill design tool straight from a browser or Swing application, modify a template downloaded from the session of that application, and save that template back to the running web application for future use. In this manner you can provide end-users with unlimited report customization options without providing dangerous access to the database.

10. Price

ReportMill costs a fraction of what the industry leading traditional report writers cost, but the real savings comes from the development time saved by ReportMill's simple API, easy integration, powerful design application, and by leveraging your application's existing business logic. Also, ReportMill only charges for actual deployment - servers dedicated to development, testing, QA, redundancy and fail-over require no licensing.

ReportMill is often even cheaper than open source solutions, considering reduced support costs and the benefits of ReportMill's superior layout application. ReportMill pays for itself with the first report, and many times over for the average web application - and many times more than that for the multiple applications running on the average corporate application server.