> ## 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.

# Fonctions qui limitent la zone de recherche

> Limitez les zones de recherche d’éléments dans les relations avancées de prérecherche de FlexiLayout avec les fonctions LeftOf, RightOf, Above, Below, Exclude et RestrictSearchArea.

Les fonctions répertoriées dans le tableau suivant ne peuvent être utilisées que dans la section **Relations avancées de prérecherche**. Chaque fonction spécifie un rectangle approximatif pour la zone de recherche ou ajoute des rectangles à un tableau de rectangles exclus.

| Définition                                                                                    | Description                                                                                                                                                                                                 |
| --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Void LeftOf( XInterval x, Distance offset = 0 )`                                             | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan vertical situé à gauche du point `x.End - offset`.                                           |
| `Void LeftOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                     | Limite la zone de recherche au demi-plan vertical situé à gauche du point `fuzzyRect.Left.End - offset`.                                                                                                    |
| `Void LeftOf( Hypothesis hyp, Distance offset = 0 )`                                          | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan vertical situé à gauche du point `hyp.Left.End - offset`.                                    |
| `Void LeftOf( HypothesisInstances hyps, Distance offset = 0 )`                                | Limite la zone de recherche au demi-plan vertical situé à gauche du point `hyps.Left.End - offset`. Les coordonnées globales sont utilisées.                                                                |
| `Void RightOf( XInterval x, Distance offset = 0 )`                                            | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan vertical situé à droite du point `x.Start + offset`.                                         |
| `Void RightOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                    | Limite la zone de recherche au demi-plan vertical situé à droite du point `fuzzyRect.Right.Start + offset`.                                                                                                 |
| `Void RightOf( Hypothesis hyp, Distance offset = 0 )`                                         | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan vertical situé à droite du point `hyp.Right.Start + offset`.                                 |
| `Void RightOf( HypothesisInstances hyps, Distance offset = 0 )`                               | Limite la zone de recherche au demi-plan vertical situé à droite du point `hyps.Right.Start + offset`. Les coordonnées globales sont utilisées.                                                             |
| `Void Above( YInterval y, Distance offset = 0 )`                                              | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan horizontal situé au-dessus du point `y.End - offset`.                                        |
| `Void Above( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Limite la zone de recherche au demi-plan horizontal situé au-dessus du point `fuzzyRect.Top.End - offset`.                                                                                                  |
| `Void Above( Hypothesis hyp, Distance offset = 0 )`                                           | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan horizontal situé au-dessus du point `hyp.Top.End - offset`.                                  |
| `Void Above( HypothesisInstances hyps, Distance offset = 0 )`                                 | Limite la zone de recherche au demi-plan horizontal situé au-dessus du point `hyps.Top.End - offset`. Les coordonnées globales sont utilisées.                                                              |
| `Void Below( YInterval y, Distance offset = 0 )`                                              | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan horizontal situé au-dessous du point `y.Start + offset`.                                     |
| `Void Below( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Limite la zone de recherche au demi-plan horizontal situé au-dessous du point `fuzzyRect.Bottom.Start + offset`.                                                                                            |
| `Void Below( Hypothesis hyp, Distance offset = 0 )`                                           | Limite la zone de recherche à un rectangle obtenu par l’intersection du rectangle de la page avec le demi-plan horizontal situé au-dessous du point `hyp.Bottom.Start + offset`.                            |
| `Void Below( HypothesisInstances hyps, Distance offset = 0 )`                                 | Limite la zone de recherche au demi-plan horizontal situé au-dessous du point `hyps.Bottom.Start + offset`. Les coordonnées globales sont utilisées.                                                        |
| `Void Exclude( Hypothesis hyp )`                                                              | Exclut la région de l’hypothèse `hyp` de la zone de recherche. Si l’hypothèse `hyp` n’est pas trouvée, exclut le rectangle intérieur de sa zone de recherche.                                               |
| `Void Exclude( Rect rect )`                                                                   | Exclut le rectangle `rect` de la zone de recherche.                                                                                                                                                         |
| `Void Exclude( RectArray rectArray )`                                                         | Exclut le tableau de rectangles `rectArray` de la zone de recherche.                                                                                                                                        |
| `Void ExcludeRect( XInterval left, YInterval top, XInterval right, YInterval bottom )`        | Exclut le rectangle flou décrit par les plages `left`, `top`, `right` et `bottom` de la zone de recherche.                                                                                                  |
| `Void ExcludeSet( ImageObjectSet set )`                                                       | Exclut de la zone de recherche le tableau de rectangles du jeu d’objets `set`.                                                                                                                              |
| `Void Exclude( HypothesisInstances )`                                                         | Exclut la région des instances d’hypothèse de la zone de recherche.                                                                                                                                         |
| `Void RestrictSearchArea( FuzzyRect fuzzyRect )`                                              | Limite la zone de recherche au rectangle flou `fuzzyRect`. Les coordonnées globales sont utilisées.                                                                                                         |
| `Void RestrictSearchArea( FuzzyRect, IntArray pages )`                                        | Limite la zone de recherche au rectangle flou `fuzzyRect`. Spécifiez les coordonnées locales et la plage de pages `pages`.                                                                                  |
| `Void RestrictSearchArea( FuzzyRect, SearchAreaPageSetType )`                                 | Limite la zone de recherche au rectangle flou `fuzzyRect`. Spécifiez les coordonnées locales et la plage de pages du type `SearchAreaPageSetType`.                                                          |
| `Void RestrictSearchArea( RectArray rectArray )`                                              | Limite la zone de recherche au tableau de rectangles `rectArray`. Les coordonnées globales sont utilisées.                                                                                                  |
| `Void RestrictSearchArea( RectArray, IntArray pages )`                                        | Limite la zone de recherche au tableau de rectangles `rectArray`. Spécifiez les coordonnées locales et la plage de pages `pages`.                                                                           |
| `Void RestrictSearchArea( RectArray, SearchAreaPageSetType )`                                 | Limite la zone de recherche au tableau de rectangles `rectArray`. Spécifiez les coordonnées locales et la plage de pages du type `SearchAreaPageSetType`.                                                   |
| `Void RestrictSearchArea( Region region )`                                                    | Limite la zone de recherche à la région `region`. Les coordonnées globales sont utilisées.                                                                                                                  |
| `Void RestrictSearchArea( Region, IntArray pages )`                                           | Limite la zone de recherche à la région. Spécifiez les coordonnées locales et la plage de pages `pages`.                                                                                                    |
| `Void RestrictSearchArea( Region, SearchAreaPageSetType )`                                    | Limite la zone de recherche à la région spécifiée. Indiquez les coordonnées locales et la plage de pages du type `SearchAreaPageSetType`.                                                                   |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, IntArray pages )`        | Limite la plage de pages dans laquelle effectuer la recherche, sans restreindre la zone de recherche sur les pages elles-mêmes. Le paramètre `pageRestriction` n’accepte qu’une seule valeur : `WholePage`. |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, SearchAreaPageSetType )` | Limite la plage de pages dans laquelle effectuer la recherche, sans restreindre la zone de recherche sur les pages elles-mêmes. Le paramètre `pageRestriction` n’accepte qu’une seule valeur : `WholePage`. |

<Tip>
  Vous pouvez utiliser l’alias `RSA` à la place du nom complet `RestrictSearchArea`.
</Tip>

<Note>
  Différentes contraintes appliquées à une même page sont utilisées conjointement, et celles appliquées à des pages différentes, indépendamment. (La recherche est effectuée sur les pages pour lesquelles au moins une contrainte a été spécifiée.)
</Note>

Vous pouvez indiquer que la zone de recherche de l’élément se situe à droite de la zone d’intersection formée par les rectangles approximatifs `Element1` et `Element2` :

```text theme={null}
FuzzyRect intersection = Element1.FuzzyRect AND Element2.FuzzyRect;
RightOf: intersection;
```

Vous pouvez spécifier que les limites de la zone de recherche de l’élément actuel sont définies par celles des rectangles des éléments `ElementName1`, `ElementName2` et `ElementName3`. Si l’un des éléments n’est pas détecté, l’appel de cette fonction définit la zone de recherche de l’élément actuel en fonction des limites des zones de recherche des éléments correspondants :

```text theme={null}
RestrictSearchArea: RectArray(ElementName1.Rect or ElementName2.Rect or ElementName3.Rect);
```

Vous pouvez indiquer que la zone de recherche de l’élément actuel est restreinte à la région de l’élément `ElementName` :

```text theme={null}
RestrictSearchArea: ElementName.Region;
```

Vous pouvez spécifier que l’élément doit être recherché dans la zone de recherche des pages paires :

```text theme={null}
RestrictSearchArea: searchArea, EvenPages;
```

Vous pouvez préciser que l’élément doit être recherché sur les pages 2, 4 et 7-9 :

```text theme={null}
RestrictSearchArea: WholePage, 2 << 4 << 7 << 8 << 9;
```

Vous pouvez indiquer que l’élément doit être recherché sur la dernière page :

```text theme={null}
RestrictSearchArea: WholePage, LastPage;
```

<div id="auxiliary-functions-that-define-the-search-area">
  ## Fonctions auxiliaires définissant la zone de recherche
</div>

| Définition         | Description                                                                                                                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Rect PageRect()`  | Le rectangle de la page active en coordonnées globales, utilisé pour définir une zone de recherche dépendant de la page. La construction `PageRect` ne peut être utilisée que pour définir une zone de recherche. |
| `Int PageNumber()` | Le numéro de la page active. Utilisez-le pour définir une zone de recherche dépendant de la page.                                                                                                                 |

Pour indiquer que l'élément se trouve dans la moitié inférieure d'une page (la page exacte n'est pas connue à l'avance), écrivez :

```text theme={null}
Below: PageRect.Top + PageRect.Height / 2;
```

Dans tous les autres cas, utilisez la syntaxe `Page( N ).Rect` pour obtenir le rectangle de la page `N`, ou `DocumentRect` pour obtenir le rectangle de l’ensemble du document. Vous pouvez également utiliser la fonction `PageNumber` pour spécifier une zone de recherche en fonction de la page.

Supposons que vous ayez un élément répétitif `SearchElements.PageHeader`. Pour effectuer une recherche sur chaque page sous chaque occurrence de cet élément, écrivez :

```text theme={null}
Below: SearchElements.PageHeader.AllInstances.PageAreaGlobal( PageNumber ).FuzzyRect, 0 * dot;
```
