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
- Navigate to Insights → Reports and click Create
- Enter a Name and optional Description
- Select the Report Type
- 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.
- Add one or more Data Sets (the queries that supply data)
- Define Columns to display
- Optionally add Filters, Aggregates, and Computed Columns
- 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.1for 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 |