As of September 12, 2025, Crystal Reports will be deprecated in ETO. This change is part of our ongoing investment in improving platform security and delivering a modern, unified reporting experience through ETO Results.
If your organization relies on Crystal Reports today, this guide will help you prepare and walk you through how to recreate one of the most-used reports using Results Reporting.
What’s Changing and Why
Crystal Reports are being removed due to SAP’s end of support for the technology, which introduces security risk. This deprecation also simplifies how reporting works across ETO by consolidating tools into Results Reporting.
Some of the most-used Crystal Reports will be rebuilt in Results (WebI format). Others will need to be manually recreated using your existing data in ETO.
Where do I access reports going forward?
The My Reports tab will remain in the navigation bar, but the following Crystal-only pages will be removed:
Standard Reports
Assessment Reports
Demographics Reports
Entity Reports
ETO Barcode
Program Group Reports
Assessment/Survey Flat File
Sections of the View Reports (Legacy) page
Instead, use:
The Results Reporting button to build new reports or access saved ones
The Custom Reports page (if applicable)
The updated View Reports page for access to standard WebI Results reports
Are any Crystal reports being preserved?
Yes. A select number of high-use Crystal Reports will be rebuilt and accessible in WebI format within Results Reporting. These include:
Review Efforts for Participant
Participant Notes by Date
Program Enrollment Report
Login/Logout Report (Site)
Select reports from Notes, Demographics, and Assessment flows
Note: This list is not exhaustive. More reports may be recreated in Results based on usage.
While most of these Results reports are expected to replicate the original Crystal versions with similar fields and filters, the Results reports will visually reflect a more modern design.
For example, the following screenshots show the “Participant Enrollment/Dismissal” Crystal report and its recreation in Results as the “New Dismissals per Year/Month/Day” report.
Important: This is only one example of a Results report. Users will have the ability to update both the colors and logo within a report to reflect your organization’s needs.
How do I export a Crystal report?
If you're unsure whether you'll need a specific Crystal Report after the deprecation, we recommend exporting a copy now for future reference.
To export a Crystal report, click to open the report you want to save and select the Export icon in the upper left corner of the report window.
Select PDF from the File Format dropdown, then click Export.
Save the file to a secure location for reference when recreating it in Results.
Rebuilding Crystal Reports in Results
If you’re new to Results Reporting, check out our Reporting in ETO section in the help center for step-by-step guides, including our “Getting Started” article here.
Below is a walkthrough of how to recreate the “Participant Notes by Date & Outcome” report in Results as an example.
Step 1: Open the Crystal report
Before recreating the report, open the original Crystal version to see what information ETO asks for when it runs. Note what prompts appear and which data is shown in the output.
For this report, you'll be prompted to:
Select a Participant
Choose a date range
The report then displays all Efforts within that range, including:
Program Name
Date of Contact
Effort values
Staff Name
Step 2: Create a new Results report
To learn how to access Results and build a report from scratch, click here. We recommend selecting a custom universe with Point of Service data as your source.
In the Query Panel, add the following fields from the Identity and Point of Service Efforts folders:
Name
Client Effort Unique Identifier
Date of Contact
Point of Service Name
Point of Service Value
Notes
Program Name
Staff Adding/Updating
Next, add the Date of Contact field to the Query Filters panel. Change the filter qualifier from “In List” to Between. Click the menu icon next to each text box and select Prompt. This creates start and end date filters that mimic the Crystal report behavior. You can also rename the prompts to “Start Date” and “End Date” for clarity.
Optional: Add the Name field as a query filter to narrow the report to one participant. In this example, we’re showing how to report on all participants and filter afterward.
Click “Run” at the bottom of the Query Panel to generate your report.
Step 3: Edit the report table
Results will create a default table using the fields you selected. You can reorder the columns by dragging the headers and resize them as needed.
We recommend placing Client Effort Unique Identifier as the first column, then right-clicking it and selecting Hide. This field doesn’t need to display, but including it prevents Results from merging similar rows that contain identical data.
Optional: If you’re reporting on all participants, right-click the Name column and select Set as Section to organize data by participant. You can also add an input control to filter by participant after the report runs.
To customize the section header with date prompts, create the following variables:
Variable Name: Report Start Date
=Substr(UserResponse("Start Date");0;Pos(UserResponse("Start Date");" ")-1)
Variable Name: Report End Date
=Substr(UserResponse("End Date");0;Pos(UserResponse("End Date");" ")-1)
Then, update the header cell formula to:
="Efforts recorded for "+[Name]+" between "+[Report Start Date]+" and "+[Report End Date]
If you're using multiple Effort forms, you can also section the report by Point of Service Name to keep each form’s data distinct.
Step 4: Save the Results report
When you're ready to save, click the floppy disk icon in the top-left of Results and select Save As.
Give the report a descriptive name, like “Participant Notes by Date & Outcome – Results”.
Choose to save it to My Favorites or to a shared folder, depending on who needs access.
If you plan to export the report, always choose Reports (not Data) in the Content tab. Otherwise, the export will return raw data that doesn't match what you see in the report.