Anyone who has used databases for even a small amount of time can appreciate that it is necessary to be able to report/summarize the data that is held in the tables in a format that can be presented to others. As a simple (completely fictional) example I"ve been building on to test the functionality, I have a table which collates rainfall levels per week and day, and the report then summarizes this with weekly totals and averages.
Currently the report functionality is already quite featureful - the feature list from a few weeks ago looked something like this:
Missing from the above list and example screenshot is the fairly awesome (well, in as much as "awesome" can get when you talk about reporting!) scripting support, which basically allows you to do perform actions when the report is rendered. The biggest use is probably changing the properties of items in the report based on values being used. To expand on the last example, it is easy to highlight areas where rainfall has been excessive...
...using a script similar to this (they don"t match because the above screenshot is a bit older):
Long term, I hope that the plugin stabilizes into something that users forget about, and just "use" in their day-to-day tasks for data reporting, with all the features they could need from the major players such as Oracle, Crystal Reports, and MS Access.
Maybe there could also be some kind of standard for the report definition that could be used across database engines, so that if a report was opened in say, OpenOffice.org Base, it would also work.
The above screenshots show scripting using QtScript, which at the time of writing is what is in SVN. This is currently being replaced with the Kross scripting engine from koffice/kdelibs, to make it language-neutral, giving it wider appeal.
I can"t take full credit for this... when I started out, I looked for an existing report engine that could be modified for use with Kexi, and I found OpenRPT (www.openrpt.com). Fortunately it was licensed under the LGPL which made it eligible for inclusion with Kexi. What is currently in Kexi is quite different, and incompatible with the original OpenRPT, lots of code has been removed/replaced with code from KOffice, such as reusing the koproperty system, and basically using KOffice libraries where appropriate. I hope to work with the OpenRPT people in the near future to contribute some changes back where there are still similarities and it is appropriate.
If anyone else finds this interesting and wants to get involved in developing or writing documentation then please feel free to drop into our IRC channel (#kexi on irc.freenode.net) to discuss. I am definitely going to need documentation written for the scripting API, and if anyone has ideas they think would be a benefit I"d definitely like to hear them!