As we migrate our applications from ASP/VBScript to Java ServerFaces or Grails applications, we needed a way to create reports.
In ASP+VBScript we had a custom reporting framework we developed in house that would build simple reports from sets of queries. More complicated reports were often build as VBScript functions in one of our ASP libraries. This worked well 8 years ago as it was all we could find for web-based reporting at the time.
Boy have things changed. I found a great reporting framework that runs on a pure Java stack. It will work in any Java application; desktop, web app or web service. It's called Jasper Reports.
Jasper Reports can be created from a desktop GUI report designer application. I've used this on Mac and Linux, and I assume it runs well under windows if you choose to do so. It's is reminiscent of the old MS Access report designer, or the Crystal Reports designer that I've used when writing C# applications... just nicer.
When it comes to integrating it with my Grails applications, it couldn't be easier because Marcos Fábio Pereira and Sebastian Hohns wrote an excellent plugin for grails so you can create one-liner links to your designed reports. It's very easy to pass parameters to your report as well. There's a good tutorial on setting up a report available on the plugin page.
All in all, I really like this solution. We're working on setting up a U of MN theme for our reports to make them all "maroon and gold". If you write any apps that run on the JVM, I highly suggest you check this open source project out.