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

# Objektmodell

> Grundlagen des Objektmodells für ABBYY FlexiCapture-Skripte: Methoden von Sammlungen, wiederkehrende Felder und Tabellenzeilen sowie das Erstellen von Pfaden zu Dokumentfeldern.

Die Besonderheiten des verwendeten Objektmodells werden im Folgenden beschrieben.

<div id="working-with-collections">
  ## Arbeiten mit Sammlungen
</div>

Alle Sammlungen im Objektmodell unterstützen die folgenden Methoden:

<table width="100%"><thead><tr><th style={{textAlign: 'left'}}><p><strong>Name</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Typ</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Zugriff</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Beschreibung</strong></p></th></tr></thead><tbody><tr><td><p>Count</p></td><td><p>int</p></td><td><p>Schreibgeschützt</p></td><td><p>Die Anzahl der Elemente in der Sammlung</p></td></tr><tr><td><p>Item( index : int )</p></td><td><p>ItemInterface</p></td><td><p>Schreibgeschützt</p></td><td><p>Ruft ein Element der Sammlung mit dem angegebenen Index ab.</p><p>Die Indizierung beginnt bei "0".</p></td></tr></tbody></table>

<Note>
  Statt die Methode Item zu verwenden, können Sie – abhängig von der ausgewählten Sprache – auch über runde oder eckige Klammern auf Elemente der Sammlung zugreifen. In den Sprachen **JScript**, **VBScript** und **Visual Basic.Net** werden runde Klammern verwendet. In **C#.Net** können nur eckige Klammern verwendet werden. In **JScript.Net** können sowohl runde als auch eckige Klammern verwendet werden.
</Note>

Zum Beispiel,

```
Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello"
```

Alle Sammlungen können in "for each"-Schleifen und ähnlichen Konstrukten verwendet werden.

<div id="working-with-recurring-fields-and-tables">
  ## Arbeiten mit wiederkehrenden Feldern und Tabellen
</div>

Alle Dokumentfelder außer Tabellen können wiederkehrend sein.

In der Dokumentstruktur werden wiederkehrende Felder durch ein spezielles Prototypfeld dargestellt, das eine nicht leere **Items**-Sammlung hat.

Ein Prototypfeld hat weder untergeordnete Elemente noch einen Wert. Es wird nur zum Speichern der Feldwiederholungen verwendet. Untergeordnete Felder und/oder Feldwerte können nur Attribute von Feldinstanzen sein, auf die über die Methode **Items** des Objekts [IField](/de/flexi-capture/appendix/scripts/ifield) zugegriffen werden kann.

Tabellen haben immer die **Rows**-Sammlung (**Rows** ist ein Synonym für **Items**). Die Rows-Sammlung enthält nur die Zeilen der Tabelle, deren Zellen über die Methode **Children** der Zeilen zugänglich sind.

## <a id="pathforming" />Pfade zu Feldern erstellen

Die Methoden Field, HasField und IndexedItemValue des Objekts [IDocument](/de/flexi-capture/appendix/scripts/idocument) verwenden Pfade zu den Feldern im Formular als Parameter. Die formale Darstellung des Pfads in BNF (Backus-Naur-Form) lautet wie folgt:

\<Path> ::= \<Path\_component> | \<Path> "" \<Path\_component>

\<Path\_component> ::= \<Field\_name> | \<Field\_name> "\["\<Field\_iteration\_number>"]"

Dabei bezeichnet **Field\_name** die Namen der Dokumentfelder, wie sie in Document Definition definiert sind, und **Field\_iteration\_number** ist die Iterationsnummer des wiederkehrenden Feldes (bei Tabellen die Zeilennummer), beginnend bei "0".

Der Pfad kann vollständig oder relativ sein. Vollständige Pfade werden ausgehend vom Namen des Dokumentabschnitts gebildet, relative Pfade ausgehend vom Namen des untergeordneten Elements in der Gruppe.

Um beispielsweise die dritte Zeile der Spalte "Total" in der Tabelle "Table" anzugeben, die sich im Abschnitt "Section" befindet, sollten Sie Folgendes schreiben:

```
"Section\Table[2]\Total"
```

Ein solcher vollständiger Name lässt sich mit der **FullName**-Methode des [IField](/de/flexi-capture/appendix/scripts/ifield)-Objekts erstellen.
