> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sample 3. Step 15: Analyzing the search constraints for column names with a TableHeader element of type Group

> Define shared search constraints for invoice column names with a TableHeader Group element and a conditional FlexiLayout language expression.

Analysis of the test images reveals that the column names are located directly below the previously detected horizontal separator. To specify the search constraints common to all the column names, create a [Group](/flexi-capture/fls/template/elements-compound) element — TableHeader.

To create the TableHeader element:

1. Create a [Group](/flexi-capture/fls/template/elements-compound) element and name it **TableHeader**.
2. Click the Advanced tab.
3. You will have noticed that if the **hsTableHeaderTop** separator has been detected on an image, the column names are located below the separator, but no lower than 100 dots from it. Otherwise, they are located in the top three fifths of the page. So set the following [additional search constraint](/flexi-capture/fls/template/advanced-constraints) in the Advanced pre-search relations field: If the **hsTableHeaderTop** element has been detected, look for the objects of the image below the separator but no lower than 100 dots from it. Otherwise, look for the objects of the image in the top three fifths of the page. In the [FlexiLayout language](/flexi-capture/fls/code/general-code):\
   `If Not (hsTableHeaderTop.IsNull) Then`\
   `{`\
   `Below: hsTableHeaderTop, 0 * dot;`\
   `Above: hsTableHeaderTop.Bottom, -100 * dot;`\
   `} Else`\
   `{`\
   `Above: PageRect.Top + PageRect.Height*3/5;`\
   `}`
