One of FileMaker Pro's strengths is how easy it is to design nice looking reports. In a report based on a one-to-many relationship such as Invoices to Invoice Line_Items, you simply design the report in the table that has the many records and display the information from the parent record in the report.

Figure 1: Final report -- The kind of report you'll learn how to create, shown here in Preview mode.
However, there are some cases where the relationship structure of the program simply doesn't lend itself to this simple approach to reporting, and getting the report you want becomes difficult. In this article, I show you how to build a complex, multi-layered report that takes data from any number of related tables and generates the report in a matter of seconds. I'll also show you a simple method of making changes to that report as the needs of the user change. (You'll need FileMaker Pro Advanced for this technique because it requires you to copy and paste fields and other elements.)
To walk you through this technique, I'm using as an example a report designed for Digital Ink Corporation, a provider of solutions to aero-medical and critical care transport companies. During a transport, the crew takes a number of different procedures/actions, which are all entered into different tables via portals. At the end of the transport, the crew must get all this information together to produce a multi-page report with a sub-summary for each individual set of procedures/tests (figure 1).
This example shows the first page of the combined report. (You may notice it says Page 2 of 4, which I'll explain later.) The top half of the first page uses fields from the Main record because all that data is entered into that file and it's included in the Sub-Summary part that sorts by the ID# field. Below that section is the sub-summary for the field Category.
In your Reports table, you'll have two fields for every field you import. The first is the data entry field; use the same names as the source file to simplify the import. You also need a label for each field. The category determines the field label, so it will only have a value if the category of the imported record matches the category referenced in the field label calculation; otherwise the field label field remains empty.
In other words, when you import data from the original tables, use matching names, then use the Replace function to set the Category field for that set of records. Each time you do an import, you end up with many blank fields in the Report file, which is why you can overlay fields for the reports part. The exact same thing is true for the field labels.