Report Writer FAQ

Modified on Tue, Jun 13, 2023 at 10:57 AM

Q: How can I get my report writer report to run based off a student list?

A: When modifying a report writer report, you can set it up to run by student list (or staff list.)  This can be accomplished using the Report Parameters tab and the Filters tab.

For a student list, you just need “Student ID” added as a column. (For staff lists, you need the “teacher ID” as a column.)

On the Report Parameters tab, you need to add a new question in the “Add a Parameter” area.

Fill in the “Question to place on Run Report screen for user to answer” box (something like "Select List” etc.)  Select “List of User’s Student Lists” in the “User answers by” box.

And then add in a macro in the “Save the user's answer in a macro named” box. Click “Add This Question.”

Once it’s added, click on the FILTERS tab.

Select “Student ID” in the “Column” box. Select “Student ID is in this list” in the “Operand” box. Then enter the macro into the “Value” box and click “Add Filter.”

Your report should then filter on just the student list when selected when running.

Q: How do I pull info from a DIFFERENT data table into one report writer report?

You will need to use a LOOK UP column.  You add them on the COLUMNS screen, in the "Add a column that looks up its value from another table, function or expression" area.

Enter what you want the Column Header to be in the "Display As" field and select the "Look Up" radio button. Click "Add."

You will then be brought to a new screen automatically where you can then select the new table and field you want to pull to the report.

For example, if STUDENT was your base table, and you needed additional SCHEDULE info, you could create a look up column pulling from the StudentScheduleCourse table.

Then, you link that new data table back to the BASE table you have selected in your report.

In my example, I am trying to pull a student's course code.  So, in Part 1 on the new screen, I will select SCHEDULING as the group, StudentScheduleCourse as the table, and then Course Code as the FIELD:

In part 2, I will select how I want my data to pull.  In this case, a kid will have more than one course, so I will select JOIN ROWS and click "USE THESE PARAMETERS":

After you click "Use These Parameters" - the screen will open up and show you Part 3.  This is where you link it BACK to your base table.

In this example, the base table in STUDENT. More often than not, you will need to add in filters of School Year, School Code, and Student ID.  That is so it will pull from the correct year, school, and student.

I have to add these three in for my example:

After filters are added in, you can run the report and see if this column is now pulling what you want it to. Depending on how complicated of a report you are doing, this may be a bit of guess and check.

In general, if School Year, School Code, or Student ID exist as options in Part 3, you should add them in.

Q: Can I export this report writer report? / Can I make a copy of this report writer report to make modifications without affecting the original?

Yes and Yes.  As long as it is a report writer report, and not a built-in report, you can export it and/or make a copy using the TOOLS tab when modifying the report.

To make a copy, click "Copy" and a new one will be generated with a new number.  To export, click the "Click here to download the report; for loading into another (or the same) Genesis System" button, and it will save directly to your computer.

Q: Can I send report writer reports to the parent portal?

Yes - if it is set up as a Form. Report Writer can be used to create simple single page PDF documents with prefilled fields and then store those documents in a student's documents tab within Genesis.  Please review this article for more info.

Q: We are getting this error when running a custom report: "SCHOOLYEAR": invalid identifier.  How can we resolve this?

You might get this kind of error on a report writer report that still contains a column filtering on a FIELD that no longer exists for that data table.

Essentially, using this school year example, if you get this error, a "School Year = School Year" filter has been added to the report somwhere where "School Year," as a field, is no longer valid. It's just no longer a valid field for the data table.

This may happen for reports using custody tables, for example, because "School Year" was removed from that data table.  You would now need to filter it using the "RecordStartDate" and/or "RecordEndDate" field(s) to filter the report values on a date range.

Q: Does the Report Writer support the use of hyperlinks in the PDF output? 

No, the PDF output of the report cannot produce URL/links that are clickable.

Q: How do we add Student and/or Staff Photos to a report writer report?

This article walks you through this.

Running a report to Microsoft Excel shows message: Could not initialize class sun.awt.X11GraphicsEnvironment

This error appears:

Exception Information:Error Message: Could not initialize class sun.awt.X11GraphicsEnvironment
Stack Trace: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(
at sun.font.FontManager.initSGEnv(
at sun.font.FontManager.findFont2D(
at java.awt.Font.getFont2D(

This error appears on servers that are running under Linux that do not have a Graphical User Environment. Tomcat needs to be re-configured to run in "headless" mode. On the linux server, edit the file /usr/tomcat/bin/

The file should look something like this:

CATALINA_OPTS="-Xmx2048m -Xms2048m -server -d64"

The line CATALINA_OPTS=.... needs to have the option -Djava.awt.headless=true added to it. The file should look something like this after the change:

CATALINA_OPTS="-Xmx2048m -Xms2048m -server -d64 -Djava.awt.headless=true"

Tomcat will need to be shutdown and re-started for the change to take effect.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article