custom reports for civicrm · extending crm_report_form: ... improved styles for printing reports:...

38
Custom Reports for CiviCRM: Not as hard as you might think.

Upload: doantram

Post on 15-May-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Custom Reports for CiviCRM:

Not as hard as you might think.

Page 2: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Anything

CiviReport does, you can do.

Grouping

Charts

Filters

Displaycolumns

Customdata

Linked text

Textmanipulation

Defaultsettings

Ordering

Anything.

Page 3: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

What you'll need

Good grasp of SQL.

Basic understanding of

Object-Oriented Programming.

Decent IDE.

Patience.

Page 4: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Getting started

Documentation:

http://bit.ly/civireport_customize

Page 5: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Getting started

Directories

for custom

templates and

PHP files.

Page 6: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Getting started

Extending CRM_Report_Form:

● Override an existing report; OR

● Create a completely new one.

Page 7: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Simple example:Add a column to an existing report.

Page 8: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

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

Page 9: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Simple example:Add a column to an existing report.

Page 10: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Simple example:Add a column to an existing report.

Page 11: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

“A report showing the name

and phone number of everyone

who came to more than

one event last year.”

Page 12: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

Page 13: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

$civicrm_root/CRM/Report/Form/Event/ParticipantListing.php

[custom_dir]/CRM/Report/Form/Event/ParticipantAggregate.php

Page 14: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

Page 15: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

$civicrm_root/templates/CRM/Report/Form/Event/ParticipantListing.tpl

[custom_dir]/templates/CRM/Report/Form/Event/ParticipantAggregate.tpl

Page 16: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

Register the

new report

template.

Page 17: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

Register the

new report

template.

Page 18: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Creating a new report

Page 19: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'fields': existing

Page 20: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'fields': count

Page 21: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'fields': phone

Page 22: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'fields': phone

Page 23: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

from( ) method: phone table

Page 24: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

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>"

);

Page 25: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'group_bys':Contact ID

Page 26: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'filters': count

Page 27: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

where( ) method

Page 28: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

where( ) method

Page 29: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

$_columns array: 'order_bys':postal code

Page 30: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

alterDisplay( ) method:

Page 31: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Useful thing #1Improved styles for printing reports:

http://bit.ly/civireport_printstyle

Page 32: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Useful thing #2User-private reports:

http://drupal.org/project/civicrm_private_report

Page 33: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Last thing, lots o' fun: Charts

Page 34: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Last thing, lots o' fun: Charts

Page 35: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Last thing, lots o' fun: Charts

Page 36: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Last thing, lots o' fun: Charts

CRM_Report_Form_Contribute_Summary

CRM_Report_Form_Contribute_Sybunt

CRM_Report_Form_Contribute_Lybunt

Examples in core reports:

Page 37: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last

Grouping

Charts

Filters

Displaycolumns

Customdata

Linked text

Textmanipulation

Defaultsettings

Ordering

Page 38: Custom Reports for CiviCRM · Extending CRM_Report_Form: ... Improved styles for printing reports: ... Useful thing #2 User-private reports: . Last