I've been spending the past few days with Eclipse and BIRT. Their examples and screencasts are quite valuable to understanding a fairly complex application. I suspect this model of documentation is quite applicable to CiviCRM also.
I'm making pretty good progress with CiviReport and currently have a BIRT library with various reports that can be distributed. I'm focusing on CiviContribute for the initial set of reports, but it is quite easy to adapt the reports to CiviMember and CiviEvent. BIRT allows you to have drill down reports (i.e. from a high level report, you can get more detailed reports on various aspects by drilling down a level or two). Thus a top level contribution report could give you breakdown by year, state and your top 5 donors. You can then drill down into details for each year, or state or a more detailed contribution report on a donor.
It's been a while, i was trying to get Eclipse-BIRT working on my machine (Ubuntu Edgy). Finally got success few days back.
Here are the steps for installation:
1) Get the Eclipse using Ubuntu update manager.
sudo aptitude install eclipse
2) BIRT package is not installed by default in Eclipse. So use Eclipse update manager and select package BIRT Reporting Tool.
You might get few errors:
- Could not write in /usr/lib .....
chmod -R 777 /usr/lib/eclipse
- I also got following errors:
Requested operation cannot be performed because it would invalidate the current configuration. See details for more information.
It was a pretty productive thanksgiving weekend :) Learnt way more about reporting, how complex an issue it is and the number of companies that are built on reporting (or to use a more trendy phrase, Business Intelligence). So here are some conclusions:
- PHP does not have a decent open (or closed) source reporting tool.
- Reporting is too complex an application and fairly well addressed by other open source projects. We should use one of those applications rather than doing it ourselves
- All the reporting open source projects use Java / Tomcat. CiviCRM users will need both java and php tools if we adopt this route
I did a fair amount of research on the web regarding the state of various open source reporting packages. BIRT received quite a few excellent reviews and they also have an upcoming integration with the Zend platform/framework that I had to give it another go.
So back to the drawing board, and did an install of Eclipse and the automated install / update of BIRT. I suspected there was an issue with the latest version of BIRT (2.1.1) and decided to install the older version (2.1.0). This proved to be a smart move and I was up and running with BIRT. Their website is quite nice and has lots of detailed informtion (which did not really help me in my first installation attempt). I started off with the Basic Tutorial, though i modified it to use the CiviCRM database and decided to create a Phone Book for the sample data. The User Interface for creating reports in BIRT is significantly more sophisticated, cleaner and simpler than the equivalent one in iReport. It probably took me less than an hour to create a group listing by state of all my individual contacts in the database. Not bad for a reporting tool :).
This week i've spent a fair amount of time trying to figure out what we could potentially do to make reporting part of CiviCRM. A few joomla folks on the list have successfully used a Joomla component DBQ and were fairly happy with it. I did read a fair amount of it and took the next step of actually installing and playing around with it.
DBQ is quite nice, easy to install and works as expected. However, as Dan Robinson pointed out on the email list, it is not a reporting tool, but more a simpler way to execute queries and format them in some manner. A lot of "reporting" functionality is missing (in all fairness to DBQ, it does not claim to be a reporting tool either).