CiviCRM Reports: Creating and Extending when the UI isn't enough
CiviCRM provides a great selection of reports out of the box, and they're wonderfully configurable to start with. But sometimes you need something that just can't be done without writing some report code.
We'll take a quick look at what's possible with existing CiviCRM reports and the configurable options that are available. Then we'll look at how to code up your own custom reports that support CiviCRM's cool report features (dashlets, charts, CSV export, add contacts to a group), including the CRM_Report_Form object and how it works, how to register your new report in CiviCRM, and some tips and gotchas to watch out for along the way.