My current task is to produce a report on a collection of fairly large linear data set (ie where value 10 depends upon some average factors from 9 8 7 6 5 4 3 etc
The problem also is that this logic (lets call it moving average now) is not fixed and will most probably change. I need to not only generate a report in HTML but in Excel and perhaps email it to use automatically (so some of the variables will be relative, ie generate a report of last month for example)
So my question is should I use a reporting engine or not? (Jasper, Pentaho, Birt)
My drivers here are -The reporting logic will change, but it will be changed by the developers. It will be complex logic so it will be easiest done in code in Java. -The report has to be saved and emailed in excel format. -The reporting task will be huge (some thing where ETL might be helpful) -Future reporting requirements are not a consideration here, the system will go a rewrite if it needs to be generic and extend-able.
I could just create an entity called report, store its type (an enum) and the parameters list (from the restful URL) and other metardata (who created, what date etc, where to send, and relative parameters are stored) And then when some processing has been done, store it in DB, just to retrieve the processed data for controller to consume. It greatly simplifies the technologies involved (I use spring mvc and it should be enough with a little sprinkle of POI). But I wonder if using reporting engine would be simpler.