Building Data Sheets Using Containers (2024)

This example outlines the steps involved to paginate and build data sheets using Containers. It illustrates how each area of a template can accommodate data, using both Data and Content threading, and flow to subsequent pages as needed.

The Example

The example files can be download here – Data Sheet Example Data

To install the data source use File->New->EasyCatalog Panel->Import Data Source.
To paginate, select one or multiple records in the panel and use the Paginate… menu option, just hit OK.

In this case there are three distinct areas for data, each expands vertically to fit the data available.
Range Description
Fetures And Benefits
Data Table

Here’s an example of a populated layout, with the data table spanning two pages:


Formatting Rules

The first step is define the Formatting Rules used for each area.

Range Description
Contains the main product image and a text frame for the description (which does not resize). The Rule has properties applied using the Containers section of the Formatting Rule dialog,  It uses “Content Threading” which links the ‘threadable’ text frame to the next formatting rule when it’s overset. In this case we want the text to continue under the image, so we define a Continuation Rule for this. EasyCatalog will attempt to link the previous overset ‘threadable’ element into the new instance.

Range Description Continued
This is used when the text frame in Range Description becomes overset. It is placed underneath the previous rule, threaded and fit vertically. If there is too much text for a Container, the process is repeated until there is no overset.

Features And Benefits
A text box with a “Fit Frame Height to Content Height” Pagination Rule. This also uses Content Threading.

Data Table
Contains a table set to populate with a Tabular Field. The first column is set to Merge Vertically. A Pagination Rule allows it to resize vertically. Data Threading is used, which creates separate tables based on the amount of data that can fit. This enables cell merging to split across Containers. (If a Content Threading was used the range of the merging would encompass the entire table, so might leave large gaps).

Containers on a Parent Pages

Once these have been designed they can be assigned to a Parent Page using the Container Tool. Here’s the Parent Page setup:

Edge Relationships between the Containers

To give the layout flexibility, relationships between Container edges are defined using the Edge Relationship tool.  In this case the Containers are set to Auto-Fit vertically. This top to bottom relationship chain is treated as a single thread of elements, populated in order –  starting with the topmost, then working down. If any container is empty, it will automatically get deleted.  No item can exceed the total area of the relationship chain. If an item is pushed outside, it will be removed and attempted on a subsequent page. The minimum size of each container can be specified using the “Containers Panel”.


To paginate, either “Container” or “Template Document” pagination types are supported. The latter looks for Containers on Parent pages and performs a “Container” type pagination. With Container based pagination the page range specified is repeated for every set of data. Any pages with containers are populated, so it’s possible to have multiple sets of Parent pages if required. Formatting Rules can also have a Configuration setting that can be used to apply grouping or sorting to the data prior to container population. This example paginates one Parent page per record, but this could easily have pages before and after if required.