Root Form

When data from forms has been pulled into a report, these forms are listed at the top of the report section.

  1. The form listed first is always considered the "root form."
  2. A root form is the foundation for building a report; the report section must always contain one column of data from this form. While you can create filters that limit the number of records from a root form that appear in your report section, you cannot alter or edit the way those records are pulled from the database. The report will always pull out the records that have been created of a root form (we will see below that this can be adjusted on a secondary form) and the report will not apply any limits to the kinds of records pulled from the database (we will see below that with secondary forms, this can be changed as well).

That is why there is always an "Always" next to the root form at the top of any report section: these records are always included in the building of a report.

 

What is Required?

  1. When data from two or more forms has been pulled into a report, the secondary forms will appear indented under the root form. If you click on one of them, you can adjust a number of things. Some of these were discussed in the Help Center section on Aliases and on Comparison Reporting.
  2. The Required section relates to the relationship between this secondary form and the root form. In the example above, the root form is a Tier 1 form and the secondary form is a related Tier 2 form. The report will always pull in data from the root form (here, a Tier 1 form), but by using the Required feature, you can direct the report to display data from the Tier 2 forms as Always, Sometimes, or Never.
  • Always: the Report Builder will display records of the Tier 1 form *when and only when* they also have an accompanying secondary form or Tier 2 record filled out.
  • Sometimes: the Report Builder will display records of the Tier 1 form *whether or not* they also have an accompanying secondary form or Tier 2 record filled out.
  • Never: the Report Builder will display records of the Tier 1 form *when and only when* they *do not* have an accompanying secondary form or Tier 2 record filled out.

 

When to Use Required? 

Changing the options under Required can be most helpful when you are trying to get a sense of how much work has been done or still needs to be done.

For example, if you are asking your users to fill out an accompanying Tier 2 record every time they complete a Tier 1 record, you can use Required to show:

  • Always: a list of Tier 1 records that have completed Tier 2 records.
  • Sometimes: a list of Tier 1 records whether or not anyone completed the accompanying Tier 2 records; these will show up as blank spaces in a column.
  • Never: a list of Tier 1 records that do not have completed Tier 2 records.

It can also be helpful to use Required if you only fill out certain records in your database after a client has completed some kind of requirement; using Sometimes would show everyone, whether or not they had completed their requirements, and using Never would show everyone who had not yet completed their requirements.

 

Using Required with Linked Forms

In the examples above, we showed how to use Required in a straightforward Tier 1-Tier 2 relationship. But Required can also be used when otherwise unrelated forms are connected by linking and are added to the same section of a report.

When using link connections:

  • Always: shows records from the root form only in cases where they has been connected with links to the secondary form.
  • Sometimes: show records of the root form whether or not they were connected with links to the secondary form.
  • Never: shows records of the root form only in cases where they have not been connected with links to the secondary form.

 

Using Required with Filters

Required is set to Always as a default. When adjusting it to Sometimes or Never, this feature of the Report Builder works independently of report filters. The data will be pulled into the report according to the settings under Required *first*, before any filters will filter out any data.

Did this answer your question?