Custom Reports for CiviCRM: Not as hard as you might think.
Default Linked text settings Anything. Anything Filters Grouping CiviReport does, you can do. Custom Display data columns Ordering Text Charts manipulation
What you'll need Good grasp of SQL. Basic understanding of Object-Oriented Programming. Decent IDE. Patience.
Getting started Documentation: http://bit.ly/civireport_customize
Getting started Directories for custom templates and PHP files.
Getting started Extending CRM_Report_Form: ● Override an existing report; OR ● Create a completely new one.
Simple example: Add a column to an existing report.
Simple example: Add a column to an existing report. $civicrm_root /CRM/Report/Form/Contact/Summary.php [custom_dir] /CRM/Report/Form/Contact/Summary.php
Simple example: Add a column to an existing report.
Simple example: Add a column to an existing report.
Creating a new report “A report showing the name and phone number of everyone who came to more than one event last year.”
Creating a new report
Creating a new report $civicrm_root /CRM/Report/Form/Event/ ParticipantListing.php [custom_dir] /CRM/Report/Form/Event/ ParticipantAggregate.php
Creating a new report
Creating a new report $civicrm_root /templates/ CRM/Report/Form/Event/ ParticipantListing.tpl [custom_dir] /templates/ CRM/Report/Form/Event/ ParticipantAggregate.tpl
Creating a new report Register the new report template.
Creating a new report Register the new report template.
Creating a new report
$_columns array: 'fields': existing
$_columns array: 'fields': count
$_columns array: 'fields': phone
$_columns array: 'fields': phone
from( ) method: phone table
Quick debugging tip: Print the actual report SQL to a status message, near the end of CRM_Report_Form::buildQuery( ) : CRM_Core_Session::setStatus( "<pre>$sql</pre>" );
$_columns array: 'group_bys': Contact ID
$_columns array: 'filters': count
where( ) method
where( ) method
$_columns array: 'order_bys': postal code
alterDisplay( ) method:
Useful thing #1 Improved styles for printing reports: http://bit.ly/civireport_printstyle
Useful thing #2 User-private reports: http://drupal.org/project/civicrm_private_report
Last thing, lots o' fun: Charts
Last thing, lots o' fun: Charts
Last thing, lots o' fun: Charts
Last thing, lots o' fun: Charts Examples in core reports: CRM_Report_Form_Contribute_Summary CRM_Report_Form_Contribute_Sybunt CRM_Report_Form_Contribute_Lybunt
Default Linked text Grouping settings Custom Filters Ordering data Display Text Charts columns manipulation
Recommend
More recommend