Building Reports

This page covers creating and configuring reports from scratch — selecting data sources, defining columns, applying filters, and building content templates. It applies to both List Reports and custom Report types.

Report Types

Every report in DonorPoint has a Report Type that determines its purpose and rendering:

Type Description
List Tabular results with column selection, filtering, sorting, and export
Summary Aggregated totals grouped by one or more dimensions
Comparison Side-by-side analysis of two or more data sets
Analysis Reusable widget definition for embedding in dashboards
Dashboard Collection of Analysis widgets on a single page
Merge Document Report that generates a document template per record
Export Report whose primary output is a downloadable file
Model Template report intended for cloning, not direct use

Creating a Report

  1. Navigate to Insights → Reports and click Create
  2. Enter a Name and optional Description
  3. Select the Report Type
  4. Choose the Report Class — this determines where the report appears. For example, setting the class to “Contact” makes the report available on every Contact’s Reports tab.
  5. Add one or more Data Sets (the queries that supply data)
  6. Define Columns to display
  7. Optionally add Filters, Aggregates, and Computed Columns
  8. Save

Data Sets

A Data Set is a named query that returns rows and columns. Reports can reference one or more Data Sets to combine data from different sources.

Each Data Set contains:

Field Description
Name Short identifier for the query
Description What the query returns
Query The query template — can reference report parameters using EL expressions
Output Columns The columns produced by this query
Limit Maximum rows returned (optional)

Data Sets are reusable: the same Data Set can be shared across multiple reports and dashboard widgets.

Columns

Columns control what data appears in the report output.

  • Query Columns — fields directly from the Data Set output
  • Computed Columns — calculated values defined as SQL expressions (e.g., amount * 0.1 for a 10% fee column)
  • Display Name — the column header shown to users; defaults to the database column name if not set

To reorder columns, drag them in the column list. To hide a column from the default view while keeping it available for filtering, remove it from the display columns but leave it in the Data Set.

Filters

Filters restrict which rows appear in the report. DonorPoint provides typed filters that match the data type of the column being filtered:

Filter Type Applies To Common Operations
String Text columns equals, contains, begins with, in list, exists/not exists
Numeric Number and currency columns equals, greater than, less than, between, zero/nonzero
Date/Time Date columns after, before, between, today, this week, this month, this quarter, this year, last year, past, future
Boolean Yes/No columns true, false, exists/not exists
Enum Dropdown columns equals, does not equal, in list

Prompted Filters

Any filter can be set to Prompt mode. When the report loads, the user is asked to supply a value for that filter before results appear. This is useful for reports like “Transactions for Date Range” where the date range should be chosen each time.

Compound Filters

For complex conditions, use Conjunction (AND) or Disjunction (OR) filters to group multiple conditions:

  • Conjunction — all conditions must be true
  • Disjunction — any condition can be true

Compound filters can be nested to build arbitrarily complex logic.

Aggregates

Aggregation functions summarize data across rows:

Function Description
Count Number of rows
Sum Total of a numeric column
Average Mean of a numeric column
Min Smallest value
Max Largest value
List Concatenated list of values (group_concat)

Aggregates appear at the bottom of List Reports and can be used in dashboard widgets for metric cards.

Group By

Add columns to the Group By list to aggregate results by category. For example, grouping by Fund and aggregating by Sum on Amount produces a fund-level giving summary.

Parameters

Reports support Parameters — key-value pairs that can be referenced in Data Set queries and report content using EL expressions. Parameters allow a single report definition to be reused in different contexts.

For example, a report placed on the Contact edit page can use a parameter contactId that is automatically populated with the current contact’s ID.

Report Content

The Content field holds XHTML that controls how the report renders. For List Reports, content is optional — the tabular view is generated automatically. For custom report types, content defines the full layout using JSF components and EL expressions.

Content can reference:

  • Report parameters
  • Column values from the current row
  • Aggregated values
  • Account and user context

Visibility Rules

The Rendered field accepts an EL expression that controls whether the report appears. For example:

  • #{subject.isPermitted('Report:R')} — only users with report read permission
  • #{homeView.instance.class.simpleName == 'Contact'} — only on Contact records

Report Options

Option Description
Bookmarkable Can be set as the user’s home page
Include Subclasses Show this report on edit pages of subclasses of the Report Class
Archived Hidden from report lists by default
System Marks as a system report (cannot be deleted by non-admins)
Hide Headers Suppress column headers in exports
Page Template Wrap the report output in a specific page template
Rows Per Page Pagination size; set to a very large number for no pagination
Row Limit Maximum total rows returned by the query