Features | Current Status | History | Downloads | Links

Report Server

** Version 1.0 Released **

This report server is designed to run already designed reports at scheduled intervals. It uses the JasperReports API libraries along with the iReport extension libraries. This combined with the Quartz scheduler allows for reports to run at predefiend intervals.

Features

Current Status

2004-11-27
Happy Thanksgiving, and enjoy release 1.0 Report Server! You can download the new release from here. If you find problems, or would like to see things different, please submit your comments to the mailing list. Enjoy!

2004-11-06
I'm still working pretty hard on this first version. I should have an alpha version in a week or two. If you want, just check out the CVS version. The ant script should work fairly well for you.

History

Like most people, I started by writing my own report server. It was a simple set of queries which had results (typically just a number) shoved into an XML document. From here I passed the XML document through an XSLT template to form HTML output. This was then put into an email and sent to my bosses to show our company's daily statistics. The requirements were simply met:

But this obviously led to layout changes, more data (which meant more queries), more complicated data structures (data sets) and finally the straw that broke my back was the request for charts and graphs!

Previous to starting to write my own report server I had searched high and low. I couldn't find anything. Like the requirements above requested, I did find things like Brio, Business Objects and Crystal Reports. But these were expensive and we are a brand new startup. We seriously couldn't even afford the $100 it would have cost for Crystal.

I started my search again. And again I enlisted friend's help in finding me a reporting solution. After searching for what felt like days (wait...it was days) I found iReport. It had all the neat things I needed and I quickly found out how to do sub-reports. Without sub-reports I couldn't have had all those different data sets and number combined in a pretty output. This was what I was looking for! Alas I had found my solution. I figured out how to do things like graphs and I was on my way.

The next step was to get this all into an email. After search the JasperReports API docs I found that I could set URI paths and such on the images. I wrote a quick program to run my reports and then made my program set these with "cid:" prefixes which could then refer to the the attachments in an email. Woohoo, I had an inline email with all of the inline images. This made the bosses happy. Just for giggles I started outputting things in PDF as well and attached them in addition to everything else. This made it so that the PDF could be stored (better than email) as well as being able to forward the reports without the formatting getting screwed up.

As a report developer I next found that iReport would create scriptlets and such for each of the sub-reports which had a graph. This made it a little tough to get into the classpath for my report runner. Alas, I would have to add my report location to the system classloader. That was bullshit, so I started thinking about it...

This is where Report Server (this project) came in. I can't be alone on this problem of the classloader and I decided to start a project at SourceForge to track my progress. I figured out a few classloader things, and now I can load up each report in it's own classloader, with all of the required sub-reports and classes easily being referenced.

And then I arrived at the mess of all of the .jasper files of sub-reports and the .class file scriptlets that ensued. What a mess. I wanted to package this up into a single file to represent my report. A side effect of the classloader stuff I developed allowed for me to put all of my files into a report.jar file and shit it out.

This is where things now started coming into the Report Server as you know it today. Of course more and more features will be added over time. I hope this History has helped you understand why I built this.

Downloads

We don't currently have any available downloads. Instead check out the project page for links to CVS checkout. We should have something in a few weeks.

Links


$Id: index.html,v 1.4 2004/11/27 23:03:01 knitterb Exp $