Generating Multiple Forms for a Student in a Single Report Run

Modified on Wed, May 29 at 7:41 AM

Generating Two or More Forms for an Individual Student

To generate multiple forms for a student in a single run of a report, you must have multiple rows in the report for the student:  any time you have multiple rows for a student, you can generate multiple forms for them.


Typically you would want to do this in situations such as:

  • The student has divorced parents or other multiple guardians and a form must be sent to each
  • The student has multiple other contacts (e.g. doctors) and a form must be sent to each
  • You are generating certificates of achievement and the student should receive multiple certificates


This article will concentrate on the first issue:  sending forms to multiple guardians.


To generate multiple forms for the student's guardians, the "Contact" system is used.


Using the Contact System to Generate Multiple Forms for an Individual Student

The "Contact" system in Genesis consists of five tables:

Table NameDescription
Contact2This is the "base" or core table of the contact system.  It contains "demographic" information for each contact.  Students can have an unlimited number of contacts.  Each student has a "STUDENT" contact in this table that identifies the student themself.
Address2The address2 table contains physical addresses: student's legal address, contact's physical (mailing, home, primary) addresses.  Each contact can have multiple physical addresses.
Email2The Email2 table contains email addresses.  Each contact can have multiple email addresses.
PhoneNumber2The PhoneNumber2 table contains all phone numbers:  Contacts can have multiple phone numbers.
StudentContact2SummaryThis summarizes the majority of a student's contact information in a single row of the database.  Each student has one - and only one - record in this file per school year.  It cannot be used to generate multiple forms (because it only has one record per student).


The tables include the number "2" because this is the second version of the Genesis Contact system.  


The easiest way to generate a separate form for each of the student's guardians is to:

  • Use the "Student" table as the base table for the report.
  • Link the Contact2 table to the Student table.
  • Filter out all of the contacts you do NOT want - and you are left with those you do want to generate a form for.


Using the Contact2 table to generate Multiple Forms

Step 1:  Linking in the Contact2 Table and Getting a Record for Each Contact

First, create a report with the "Student" table as the base table:


Now, prepare to link the Contact2 table to the report in order to bring in multiple "Guardian" records:

When you add the new column as a "look up" column, you are brought to the "Define Linked Column" screen.  Here, fill in the table (Contact2) you want to get data from, the name of the field - in this case the "Fullname" field - you want to bring in and then choose the "Display data as" option.  Because we want to bring in MULTIPLE records so that we can generate multiple forms, we use the "ADAVANCED" option.  This is a join that will bring in all matching records.  


Note:  there are many name fields in the Contact2 record, we are using "fullname" here for convenience.


Once these fields are filled in, click the "Use These Parameters" button to move to the next step, creating the links:

First, add "School Year = School Year" and "student id = student id" as links:


This is where we run into a bit of hardship.  


It would be nice to be able to simply get "all of the guardians" and no other contacts, but, alas, that is not possible:

The "guardian" field, which is a Boolean (true/false) value is also a "Magic Getter" - and Magic Getters cannot be used as links in linkages here.   [This is because Magic Getters are not really in this table - a story for another time]


This will cause us to have to get ALL contacts and eliminate the ones we do not want later.  This is why the "eliminate the ones you don't want" step is necessary.


The linkage is now complete:  no additional links are needed.  But ALL of the student's contacts will be return by this link.  

Returning to the Columns screen the new column is shown with a green background, indicating it is a "Join":

Note:  a "join" means that multiple new rows can be generated from the linkage, one new row for each additional contact that is linked in for a student.


It's now important to eliminate all of the contacts that are not wanted.


Step 2:  Filtering Out the Contacts That Are NOT Wanted

Part 1 of Filtering Out the Contracts that Are NOT Wanted

We want to keep all of the Guardian contacts.  Each student can have up to four Guardian contacts.   Running the report right now will get all of each student's contacts, not just the Guardians.


Start by copying the new "Guardian Name" column (or whatever you have named yours):  click the copy icon at right:


This brings up the copy dialog - enter the name/code for the new column:


When you click OK, the Define Lined Column screen is brought up for the new copy, with all settings the same except for the name.  Now select the "guardian*" field from the "Select a field" drop down.  While 'guardian*' is a Magic Getter and cannot be used as a link it can be selected to be brought into a column as data:


Once you have selected it, click the "Use These Parameters" button to save the updated setting.


Part 2 of Filtering Out the Contracts that Are NOT Wanted

The guardian field is now in a column:

As a Magic Getter, the guardian field of the Contact2 table cannot be used as a link on the Defined Linked Column screen, but it can be loaded into a "column" of the report, as has been done here.


Now it can be used as a Filter to remove all of the rows except the rows for each student's parents and guardians.

Click on the 4. Filters tab to bring up the "Filters" screen of the ReportWriter:


Add the "guardian" field as a filter here.  Select it in the "Add Filter" left drop down and set the 'operand" and "Value" to '=' and Y, respectively:


Now click the Add Filter button to add the filter to the three that are already there:


Step 3:  Creating "Report Sections" for Each Form to be Generated

The final step in setting up the generation of multiple forms is to create "report sections".  It is the 'sectioning' that tells the ReportWriter how and when to generate a new form.


Here there needs to be a new Report Section for each form that will be generated:   a section must be created for each of the Contacts.


Click on the "6. Sections and Totals" tab of the ReportWriter:


Initially there is "Section 1" or 'the whole report' where you can create totals for a report.   To generate Forms, you need to add "Section 2" to break at each point where a form needs to be generated.


Start by clicking the "Add Section" button.  This brings up an "Add Section" dialog:

You can enter the name of the section, e.g. "Contact Form" (the name does not matter but there must be a name).   To generate a form, the "Section starts on a new page" checkbox must be checked.   It is the 'new page" feature which generates the new form.   Click Add Section to create the new - but still empty - section:


You must now specify when a new form is to be generated.  To do that, you must add columns to the "Break on these columns" control:


"Break" here means to create a new section.  To generate potentially multiple forms for a single student, it is necessary to break on two pieces of information:

  1. When the "student" in the current row is different than the student in the previous row.  Or when the "studentID' changes.
  2. When the "Contact" changes from one row to the next - we want there to be a new Form for each Contact, so the contact information is added as a field to break on:


Here, all we have added to the Report is the guardian's name.  It might be better to also add the "Contact Object ID" to the columns in the report and then break on the "Contact Object ID".   To do that, go back to the Columns screen, copy the "Guardian Name" column  and name the copy "ContactObjectID".  Now you can get the "objectid" field from the Contact2 table:

This way you are guaranteed to have a unique value for each Contact.


Now you can replace the "Guardian Name" with "Contact Object ID" as the field to break on:



Step 4:  Doing a Test Run to Make Sure Multiple Forms Will Be Generated

To make sure everything is set up correctly, run the report.


What you should get as output is a a set of pages with one contact listed per page:

This is exactly what you want!  Every place there is a new page is whete a new form will be generated.



Step 4:  Uploading and Filling Your Form and Extracting Additional Information for the Contact

Now you can proceed and upload a Form to the report, and add the data that will be used to fill the form.


This is the end of this article.   You can now proceed to finish your report as you like.

A sample of a multiple form per student report, the Custody Sensitive Emergency Verification Form is available here.  This is a complicated form but a good example of the multiple-form per student technique.



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