Create Hyperlinks or "Tabs" to Connect Sets of Reports

It's often helpful to link multiple reports together to create a unified experience for the end user. By linking multiple reports together, the end user can experience a set of reports as if they were a single report, making it easier for users to use and find/discover the reports.

The most popular way to accomplish this is to create pseudo "tabs" or "buttons" that link back and forth to other reports. Here's an example:

The "tabs" and "buttons" in the screenshot above are nothing more than text fields with hyperlinks to entirely separate but related reports.

The key to creating a unified experience for the user is to ensure that any filters that the user has selected are carried over to the other reports when they click on the hyperlink. Follow the steps below to create a hyperlink that carries over all the filters to the target report.

Step 1: Create and Install the Reports

The first step is to create and install your separate reports, without the hyperlinks. The reports need to be installed without the hyperlinks first because you must have a report id in order to create a hyperlink to the report. A report ID is assigned only when a report is installed. So the process requires first installing the reports and then updating the reports with the hyperlinks.

First, Add a simple text field to your report where the user will click to switch to another report. You can add a rectangle with a radius (i.e. rounded corners) underneath the text field to make it look like a tab.

Next, select your textfield and: 1. Go to the Properties tab 2. Select Hyperlink 3. Click the + next to “Hyperlink”. 4. Set the “Link Target” to Parent 5. Set the “Link Type” to Reference 6. Copy and paste the long expression below into the “Hyperlink Reference Expression” field.

Finally, you need to customize the “Hyperlink Reference Expression”:

  1. Change "DEMO" to your Illuminate domain.

  2. Change "prebuilt_id=123" to the report id of the report you are linking to.

  3. You may need to change the "/live/" after the "illuminateed.com" to "/dna/" depending on your Illuminate site. Just look at the url when you are logged in to your Illuminate to see if your Illuminate site uses "/live/" or "/dna/".

"https://DEMO.illuminateed.com/live/?page=PrebuiltReport_JasperCustomReportController&debug="
+"&jasper_prebuilt_id=123"
+"&fw_form_form_test=1"
+"&site_id="+$P{site_value}
+"&date="+($P{date_value}==null? "" : ($P{date_value}.contains("Control Panel") ? "logged_in_date" : $P{date_value}.contains("Current Year") ? "current_year" : "custom"))
+"&date_other_start="+($P{date_other_start}==null ? "" : URLEncoder.encode($P{date_other_start},"UTF-8"))
+"&date_other_end="+($P{date_other_end}==null ? "" : URLEncoder.encode($P{date_other_end},"UTF-8"))
+"&group_id="+$P{group_value}
+"&course_id%5B%5D="+($P{course_value}==null ? "" : ($P{course_value}.replaceAll(", ","&course_id%5B%5D=")))
+"&race_slash_ethnicity="+$P{english_proficiency_value}
+"&gender="+$P{gender_value}
+"&is_special_ed="+$P{is_special_ed_value}
+"&is_sed="+$P{is_sed_value}
+"&user_id%5B%5D="+($P{user_value}==null ? "" : ($P{user_value}.replaceAll(", ","&user_id%5B%5D=")))
+"&section_id%5B%5D="+($P{section_value}==null ? "" : URLEncoder.encode($P{section_value},"UTF-8"))
+"&student_id%5B%5D="+($P{student_value}==null ? "" : URLEncoder.encode($P{student_value},"UTF-8"))
+"&non_visibility_group_id="+$P{non_visibility_group_value}
+"&english_proficiency%5B%5D="+$P{english_proficiency_value}
+"&department_id%5B%5D="+$P{department_value}
+"&grade_level_id%5B%5D="+($P{grade_level_value}==null ? "" : ($P{grade_level_value}.replaceAll(", ","&grade_level_id%5B%5D=")))
+"#report"

Last updated