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

# Block

> FlexiLayout-Blöcke ordnen Dokumentfelder für die Datenerfassung zu: Beschrieben werden die Blocktypen Text, Barcode, Table und Group sowie ihre Eigenschaften und Regionsausdrücke.

FlexiLayout-Blöcke entsprechen Feldern in Dokumenten, aus denen Daten erfasst werden müssen. Ein Block gibt den Datentyp an, den das Feld enthalten kann, sowie die Koordinaten des Bildbereichs, in dem sich das Feld voraussichtlich befindet.

Der Zweig „Block“ ist im FlexiLayout-Baum mit <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_tree.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=deeed524eb72bc9b5af0c1fff61eabb1" alt="Blocksymbol im Baum" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_tree.gif" /> gekennzeichnet.

<div id="flexilayout-block-types">
  ## FlexiLayout-Blocktypen
</div>

ABBYY FlexiLayout Studio unterstützt die folgenden Blocktypen:

| Blocktyp                 | Symbol                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Beschreibung                                                                                                                                                                               |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Text**                 | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_text.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=2f5f93810c1a248df472ba326e53399e" alt="Symbol für Textblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_text.gif" />                                                                                                                          | Wird zum Extrahieren von Textdaten verwendet.                                                                                                                                              |
| **Barcode**              | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_barcode.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=ebe7e02bd4b709748972b2296c85373b" alt="Symbol für Barcodeblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_barcode.gif" />                                                                                               | Wird zum Lesen von Barcodes verwendet.                                                                                                                                                     |
| **Checkmark**            | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_checkmark.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=31c276522c85377d8fab2bd8bf20a188" alt="Symbol für Häkchenblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_checkmark.gif" />                                                                               | Wird zum Erkennen von Häkchen verwendet.                                                                                                                                                   |
| **Picture**              | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_picture.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=5ef20c6bac449b68023e5bc9430320ee" alt="Symbol für Bildblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_picture.gif" />                                                                                                  | Wird zum Verarbeiten von Objekten verwendet, die bei der Vorerkennung nicht als Text identifiziert wurden.                                                                                 |
| **Table**                | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/Table_Block.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=b587cb447531d0883066fce4033ae88e" alt="Symbol für Tabellenblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/Table_Block.gif" />                                                                                                              | Wird zum Extrahieren von Daten aus Tabellen verwendet.                                                                                                                                     |
| **Group**                | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_group.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=e765a304f828526d23c03274b2dc059c" alt="Symbol für Gruppenblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_group.gif" />                                                                                                               | Wird zum logischen Gruppieren von Blöcken verwendet.                                                                                                                                       |
| **Checkmark Group**      | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_checkmark_group.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=a1edbbbc4034740745e9706929c4b9d9" alt="Symbol für Häkchengruppenblock" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_checkmark_group.gif" />                        | Wird zum Erstellen von Häkchengruppen verwendet. Zu diesem Gruppentyp können nur Häkchenblöcke hinzugefügt werden. Blöcke anderer Typen können hier weder erstellt noch verschoben werden. |
| **wiederholbare Gruppe** | <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_repeatable_group.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=3dd356ce8d79245d7f86431f6053598a" alt="Symbol für Block vom Typ wiederholbare Gruppe" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/block_repeatable_group.gif" /> | Wird zum Erstellen einer wiederholbaren Gruppe von Blöcken verwendet.                                                                                                                      |
| **Non-Recognized**       | <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Block_Unrecognizable.gif?fit=max&auto=format&n=fmgRWFNHKYN2MLSg&q=85&s=059acd0b3370c31b337a74ca89a51a70" alt="Symbol für nicht erkannten Block" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/Block_Unrecognizable.gif" />                              | Wird verwendet, um einen Bereich von der Erkennung auszuschließen.                                                                                                                         |

Das Erweitern der Regionen von Textblöcken kann die Erkennungsqualität verbessern. Um eine Region zu erweitern, doppelklicken Sie auf das Element **Block**, um das Dialogfeld **Properties** zu öffnen, und geben Sie die vertikalen und horizontalen Werte für die Eigenschaft **Blocks result region inflate** an.

Blöcke, für die in mindestens einer Layout-Alternative kein Bildbereich angegeben ist, haben in der oberen rechten Ecke des Symbols ein leeres Quadrat: <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/block_undef.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=f7294febb9ed17bdeb883bf35bc71976" alt="Symbol für undefinierten Block" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="16" height="15" data-path="images/flexi-capture/fls/block_undef.gif" />.

Wenn nur ein FlexiLayout ausgewählt ist (über den Eintrag **Select Layout** im Kontextmenü des Elements, über denselben Eintrag im Abschnitt **FlexiLayout** oder über den Eintrag **Select Alternative Layout** im Kontextmenü des FlexiLayout), prüft das Programm den Bildbereich nur in diesem FlexiLayout.

<Note>
  Daten aus den Blöcken werden in einer Datenerfassungsanwendung wie ABBYY FlexiCapture extrahiert.
</Note>

<div id="block-properties">
  ## Blockeigenschaften
</div>

Ein Block hat die folgenden Eigenschaften:

| Eigenschaft                          | Beschreibung                                                                                                                                                                                                                                                                                 |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**                             | Der Name des Blocks. Er kann Buchstaben (lateinische Zeichen, lateinische Zeichen mit diakritischen Zeichen, kyrillische Zeichen), Ziffern und Unterstriche enthalten. Er muss mit einem Buchstaben oder einem Unterstrich beginnen und darf keine Leerzeichen oder Sonderzeichen enthalten. |
| **Type**                             | Der Typ des Blocks, der beim Erstellen ausgewählt wird. Er muss dem Typ der Objekte entsprechen, die sich in dem vom Block umschlossenen Bereich befinden.                                                                                                                                   |
| **Comment**                          | Ein optionaler Comment, der vom Benutzer eingegeben wird.                                                                                                                                                                                                                                    |
| **Has repeating instances**          | Zeigt an, dass der Block aus mehreren Instanzen besteht. Wählen Sie diese Eigenschaft aus, wenn beispielsweise alle Instanzen eines Elements vom Typ [wiederholbare Gruppe](/de/flexi-capture/fls/template/repeatable-group) als Blockregion verwendet werden.                               |
| **Sortierreihenfolge der Instanzen** | Legt die Reihenfolge fest, in der Gruppeninstanzen zu einem Block zusammengeführt werden. Nur verfügbar, wenn **Has repeating instances** ausgewählt ist.                                                                                                                                    |

Die Eigenschaft **Sortierreihenfolge der Instanzen** hat die folgenden Werte:

| Sortierreihenfolge                    | Verhalten                                                                                                                                                |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Von oben nach unten**               | Führt die Instanzen entsprechend ihrer Position im Bild von oben nach unten zu einem Block zusammen.                                                     |
| **Von links nach rechts**             | Führt die Instanzen entsprechend ihrer Position im Bild von links nach rechts zu einem Block zusammen.                                                   |
| **Von rechts nach links**             | Führt die Instanzen entsprechend ihrer Position im Bild von rechts nach links zu einem Block zusammen.                                                   |
| **In der Reihenfolge des Auffindens** | Führt die Instanzen in der Reihenfolge zu einem Block zusammen, in der Hypothesen erzeugt werden. Die Hypothesen werden in absteigender Quality erzeugt. |

Wenn Sie bei **In der Reihenfolge des Auffindens** zusätzliche Bedingungen für Instanzen angeben, werden die Hypothesen in der benutzerdefinierten Reihenfolge erzeugt. Wenn Sie eine andere Reihenfolge als die vom Programm verwendete Standardreihenfolge benötigen, können Sie diese mithilfe zusätzlicher Bedingungen festlegen.

Die folgenden Eigenschaften legen den Bereich im Bild fest, aus dem Daten extrahiert werden sollen.

<div id="for-layout">
  ### For Layout
</div>

Wählt die Layout-Alternative aus, in der der Suchbereich angegeben ist.

<div id="source-element">
  ### Source element
</div>

Gibt einen Bereich im Bild an, der mit der Region des Elements identisch ist, das verwendet wird, um den Block im Bild zu finden. Wenn das FlexiLayout auf das Bild angewendet wird, sucht das Programm nach dem Objekt bzw. den Objekten, die durch das Element beschrieben werden. Die Daten werden aus diesen Objekten erfasst.

Für eine wiederholbare Gruppe können Sie entweder eine der Instanzen auswählen oder alle Instanzen verwenden (`AllInstances`). Weitere Informationen finden Sie unter [Instanzen einer wiederholbaren Gruppe als Referenz-, Ausschluss- oder Quellelemente verwenden](/de/flexi-capture/fls/template/select-repeatable-group).

<div id="expression">
  ### Ausdruck
</div>

Legt einen Bereich im Bild fest, der mit keiner der Elementregionen übereinstimmt.

Sie können zum Beispiel die Regionen einiger Elemente und den Raum zwischen ihnen zu einem Block zusammenführen, die Region eines Elements um einen bestimmten Wert erweitern oder die Koordinaten des Blocks angeben, ohne auf Elemente Bezug zu nehmen. In diesem Fall kann die Region des Blocks in der [FlexiLayout-Sprache](/de/flexi-capture/fls/code/general-code) beschrieben werden.

<Note>
  Die Region eines Blocks ist zusammenhängend. Das bedeutet: Wenn Sie eine Region aus getrennt liegenden Rectangles erstellen, werden die Zwischenräume durch schmale zusätzliche Rectangles gefüllt, damit die Region zusammenhängend wird.
</Note>

Ein Block kann jedoch aus mehreren Regionen bestehen, wenn alle Instanzen einer wiederholbaren Gruppe als Referenzelement verwendet werden. Die Region eines Gruppenblocks wird anhand der Regionen der untergeordneten Blöcke berechnet, genau wie die Region der Hypothesen. Die resultierende Region wird für eine bessere Darstellung leicht erweitert.

<div id="parameters-of-group-and-repeating-group-blocks">
  ### Parameter von Blöcken vom Typ Gruppe und wiederholbare Gruppe
</div>

Eine Häkchengruppe und eine normale Gruppe von Blöcken haben außer **Name** und **Comment** keine weiteren Parameter.

Die Parameter einer wiederholbaren Gruppe von Blöcken sind dieselben wie bei Blöcken, die keiner Gruppe angehören. Die Option **Has repeating instances** ist für sie immer aktiviert.

Untergeordnete Blöcke können die Option **Has repeating instances** haben oder nicht, aber für sie wird immer die Variable `OutputInstances` erstellt. Wenn ein Block innerhalb einer wiederholbaren Gruppe von Blöcken die Option **Has repeating instances** hat, bedeutet das, dass er sich innerhalb jeder Instanz des übergeordneten Blocks wiederholen kann.

<div id="specify-a-block-region-using-instances-of-a-repeating-group">
  ### Eine Blockregion mithilfe von Instanzen einer wiederholbaren Gruppe angeben
</div>

Wenn ein Block über mehrere Instanzen definiert wird, besteht die Blockregion aus mehreren separaten Regionen. Wenn Sie eine bestimmte Instanz einer wiederholbaren Gruppe verwenden (zum Beispiel `LastFound`), wird die Blockregion wie bei jedem anderen Element definiert.

Sie können jedoch auch alle erkannten Instanzen verwenden (`AllInstances`). Um mehrere Instanzen zu verwenden, aktivieren Sie die Option **Has repeating instances**.

Sie können auch Code für den Block schreiben und dabei die vordefinierte Variable `OutputInstances` verwenden. Zum Beispiel:

```text theme={null}
OutputInstances = SearchElements.PageHeader.AllInstances.UnionRect;
```

ABBYY FlexiCapture verarbeitet Blöcke mit der aktivierten Option **Has repeating instances** wie folgt:

* Bei Blöcken, die keine Tabellenblöcke sind, sind die angegebenen Instanzen die Instanzen des entsprechenden Felds.
* Bei einem Tabellenblock werden die angegebenen Instanzen als eine einzige Instanz des Felds behandelt. Das heißt, ABBYY FlexiCapture verarbeitet einen solchen Block als ein Feld vom Typ **Table** mit einer nicht zusammenhängenden Region.

<div id="rules-for-creating-references-to-elements-for-repeating-groups-of-blocks">
  ### Regeln zum Erstellen von Verweisen auf Elemente für wiederholbare Gruppen von Blöcken
</div>

Eine wiederholbare Gruppe von Blöcken verweist auf ein [wiederholbares Element](/de/flexi-capture/fls/template/repeatable-group). Um Instanzen einer wiederholbaren Gruppe von Blöcken zu erstellen, benötigen Sie mehrere Elementinstanzen. Daher muss eine der IDs `AllInstances` sein.

Da die unter dem Element mit `AllInstances` verschachtelten Elemente keine anderen IDs haben können, bedeutet diese Bedingung auch, dass das unterste wiederholbare Element `AllInstances` haben muss.

Untergeordnete Blöcke einer wiederholbaren Gruppe von Blöcken verweisen auf untergeordnete Elemente der wiederholbaren Gruppe von Elementen, auf die der übergeordnete Block verweist. Der Verweis muss für die Instanzen dieselbe ID haben.

Wenn ein Block einer wiederholbaren Gruppe beispielsweise den Verweis `SearchElements..RepGr1.Instance(1).RepGr2.AllInstances` hat, können sich seine untergeordneten Blöcke nur wie folgt auf das Element `RepGr1..RepGr2.Element` beziehen:

```text theme={null}
SearchElements.RepGr1.Instance(1).RepGr2.AllInstances.Element
```

Wenn kein Attribut `HasRepeatingInstances` vorhanden ist, können Sie nur auf Subelemente der Basisgruppe verweisen, die selbst keine Wiederholungen enthalten, und umgekehrt.

Wenn ein Attribut `HasRepeatingInstances` vorhanden ist, können Sie auf Elemente verweisen, die innerhalb der Basisgruppe Wiederholungen enthalten (dabei können Sie nur auf alle Instanzen gleichzeitig verweisen).

```text With a HasRepeatingInstances attribute theme={null}
SearchElements.RepGr1.Instance(1).RepGr2.AllInstances.RepGr3.AllInstances.Element
SearchElements.RepGr1.Instance(1).RepGr2.AllInstances.RepGr3.AllInstances.RepGr4.AllInstances.Element
```

```text Without a HasRepeatingInstances attribute theme={null}
SearchElements.RepGr1.Instance(1).RepGr2.AllInstances.Gr3.SubElement(where Gr3 is a simple group)
SearchElements.RepGr1.Instance(1).RepGr2.AllInstances.SubElement
```

<Note>
  Wenn Referenzen über **Source element** erstellt werden, erfolgt die Prüfung beim Erstellen des FlexiLayouts. Wenn Referenzen mit Advanced-Code erstellt werden, wird beim Abgleich des FlexiLayouts ein Fehler festgestellt.
</Note>

<div id="describe-a-block-region-with-the-flexilayout-language">
  ### Eine Blockregion mit der FlexiLayout-Sprache beschreiben
</div>

Verwenden Sie zum Angeben der Region eines Blocks das Feld **Ausdruck**.

Welche vordefinierte Variable verwendet wird, hängt vom Typ des Blocks und davon ab, ob für ihn die Option **Has repeating instances** ausgewählt ist:

| Variable          | Typ                                                   |
| ----------------- | ----------------------------------------------------- |
| `OutputRegion`    | `Region`                                              |
| `OutputTable`     | `TableHypothesis`                                     |
| `OutputInstances` | `HypothesisInstances` oder `TableHypothesisInstances` |

Weitere Informationen zu den vordefinierten Variablen, die im Feld **Ausdruck** verwendet werden können, finden Sie unter [Vordefinierte Variablen](/de/flexi-capture/fls/language/predefined-variables).

| Aufgabe                                                                                                                                                       | Beispielcode                                                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Die Region eines Elements abrufen und um 3 mm in der Breite und 5 mm in der Länge erweitern                                                                   | `OutputRegion = SomeElement.Rect;   OutputRegion.Inflate( 3*mm, 5*mm );`                                                                       |
| Die Rechtecke der Regionen zweier Elemente zusammenführen und das Rechteck abrufen, das die zusammengeführten Rechtecke umschließt                            | `Rect outputRect;   outputRect = Element1.Rect Or Element2.Rect;   OutputRegion = outputRect;`                                                 |
| Die Rechtecke, die die Regionen zweier Elemente umschließen, zu einer Region zusammenführen                                                                   | `RectArray outputRects;   outputRects = RectArray( Element1.Rect );   outputRects.Add: Element2.Rect;   OutputRegion = Region( outputRects );` |
| Die Regionen der Objekte, die zwei verschiedenen Elementen entsprechen, zu einer Region zusammenführen                                                        | `RectArray outputRects;   outputRects = Element1.Rects;   outputRects.Add( Element2.Rects );   OutputRegion = outputRects.Region;`             |
| Die Regionen der Objekte zusammenführen, die zur Region von `Element1` gehören, und die Regionen der Objekte entfernen, die zur Region von `Element2` gehören | `OutputRegion = FormRegion( Element1.Rects, Element2.Rects );`                                                                                 |
| Ein **Table**-Element verwenden, um einen **Table**-Block anzugeben                                                                                           | `OutputTable = SearchElements.TableElement;`                                                                                                   |
| Hypotheseninstanzen für ein bestimmtes Element verwenden, um einen **Table**-Block anzugeben                                                                  | `OutputInstances = SearchElements.RepeatingGroup.AllInstances.TemplateElement;`                                                                |

<div id="use-the-isnull-variable">
  ## Die Variable IsNull verwenden
</div>

Sie können auch eine vordefinierte Variable `IsNull` verwenden, um die Region eines Blocks zu beschreiben. Diese Variable gibt an, ob die Region des Blocks beim Abgleich des FlexiLayouts gefunden wurde. Der Wert `false` bedeutet, dass die Region gefunden wurde. Der Wert `true` bedeutet, dass sie nicht gefunden wurde.

Die Variable `IsNull` wird mit dem Wert `false` initialisiert. Das bedeutet, dass die Region des Blocks zunächst als gefunden gilt. Manchmal müssen Sie jedoch bestimmte Bedingungen prüfen, bevor Sie eine Entscheidung treffen.

Wenn das Programm die Region des Blocks nur dann als gefunden betrachten soll, wenn die Breite der Region des Source element größer als 50 dots ist, geben Sie den folgenden Code in das Feld **Region expression** ein:

```text theme={null}
if Element1.Width < 50dt then IsNull = true;
```

Wenn das Programm die Region des Blocks nur dann als gefunden betrachten soll, wenn `Element1` gefunden wurde, geben Sie den folgenden Code in das Feld **Region expression** ein:

```text theme={null}
IsNull = Element1.IsNull
```

Angenommen, Sie müssen `Element1` und `Element2` verwenden, um nach einem Block zu suchen. Wenn mindestens eines der Elemente nicht gefunden wurde, gilt der Block als nicht gefunden:

```text theme={null}
Rect outputRect;
Let FieldLeft = Element1.Rect.Left;
Let FieldRight = Element2.Rect.Right;
Let FieldTop = Element1.Rect.Top;
Let FieldBottom = Element2.Rect.Bottom;
outputRect = Rect( FieldLeft, FieldTop, FieldRight, FieldBottom);
if ((Element1.IsNull == True) or (Element2.IsNull == True) ) then {IsNull = true;}
OutputRegion = outputRect;
```

<Note>
  Dieser Code funktioniert nur dann korrekt, wenn sich der Suchbereich von `Element1` oberhalb und links vom Suchbereich von `Element2` befindet.

  Im vorherigen Beispiel wird diese Bedingung der Einfachheit halber nicht geprüft. Im tatsächlichen Code ist diese Prüfung jedoch erforderlich, und die Werte der Variablen `FieldLeft`, `FieldRight`, `FieldTop` und `FieldBottom` müssen entsprechend angepasst werden. Andernfalls führt der Aufruf der Funktion `Rect` zu einem Fehler.
</Note>
