- Sie können die Positionen von Elementen relativ zu den Regionen von Feldern festlegen, die erkannt wurden, als das Haupt-FlexiLayout aus dem Rechnungsprojekt angewendet wurde.
- Bezeichner von Vendors und Geschäftsbereichen können in Anfragen an den Datensatz der Dokumentdefinition verwendet werden.
- Listen mit Schlüsselwörtern und anderen Parametern eines FlexiLayouts können in eine XML-Datei exportiert werden, sodass Sie sie bearbeiten können, ohne das FlexiLayout oder die Dokumentdefinition selbst zu bearbeiten.
Zusätzliches FlexiLayout erstellen
Öffnen Sie einen Batch in FlexiCapture
Öffnen Sie einen Batch mit erkannten Rechnungen in FlexiCapture.
Dieser Befehl ist nur für FlexiCapture-Projekte verfügbar, die auf Ihrem Computer gespeichert sind. Wenn Sie die Distributed-Version von FlexiCapture verwenden und das Projekt auf dem Server gespeichert ist, laden Sie es zunächst auf Ihren Computer herunter, indem Sie im Menü Project auf Export Project… klicken.
Das Suffix des ABBYY FlexiLayout-Studio-Projekts gibt die Version der Dokumentdefinition zum Zeitpunkt der Projekterstellung an.
| Baum | Knoten | Beschreibung |
|---|---|---|
| SearchElements | CommonBlockRegions | Dieser Knoten enthält Elemente, die allen Feldern der Dokumentdefinition entsprechen. Die Koordinaten aller Blockregionen, die beim Anwenden von FlexiLayouts auf die einzelnen Dokumente in FlexiCapture erkannt wurden, sind im ABBYY FlexiLayout-Studio-Projekt gespeichert. Standardmäßig werden Regionen mit diesen Koordinaten Elementen zugeordnet, die denselben Namen wie die Felder in der Dokumentdefinition haben. Dadurch können sie verwendet werden, um relative Positionen von Elementen festzulegen und neue Elemente zu erstellen. |
| SearchElements | CustomSearchElements | Dieser Knoten enthält Beispielelemente. Sie sind standardmäßig deaktiviert, um Störungen beim Anwenden des FlexiLayouts zu vermeiden. DataSetRequestSample — Ein Beispiel für eine Anfrage an den in der Dokumentdefinition gespeicherten Datensatz mit Vendors und Geschäftsbereichen. Dieser Datensatz enthält Bezeichner von Vendors und Geschäftsbereichen. |
So fügen Sie einem zusätzlichen FlexiLayout ein Feld hinzu
- Um die Suchlogik für ein Feld zu beschreiben, müssen Sie einen Block mit einem eindeutigen Namen erstellen.
- Um die Suchlogik für ein Feld zu ändern, das bereits in der Dokumentdefinition vorhanden ist, müssen Sie einen Block mit demselben Namen erstellen.
Seiten zu einem zusätzlichen FlexiLayout hinzufügen
- Sie können FlexiCapture-Batches nur in ABBYY FlexiLayout Studio-Projekte exportieren, die über Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project… erstellt wurden.
- Wenn Sie einen FlexiCapture-Batch nach ABBYY FlexiLayout Studio exportieren, wird dort für diesen Batch ein neuer Batch erstellt.
- Wenn die neue Document Definition mehr Felder enthält als die Document Definition, die für das ABBYY FlexiLayout Studio-Projekt verwendet wurde, wird im Exportprotokoll für jedes zusätzliche Feld eine Warnung ausgegeben.
- Damit das Programm die zusätzlichen Felder exportiert, fügen Sie für jedes zusätzliche Feld im Knoten CommonBlockRegions des Baums SearchElements einen Block mit demselben Namen hinzu.
Anfragen an Datensätze aus der Dokumentdefinition senden
| Typ | Beschreibung |
|---|---|
| NamedValue | Ein benannter Wert. |
| Konstruktor | |
NamedValue( String, String ) | |
| Methoden | |
String Name() | Gibt den Namen eines benannten Werts zurück. |
String Value() | Gibt den Wert eines benannten Werts zurück. |
| NamedValueArray | Ein Array benannter Werte. |
| Konstruktoren | |
NamedValueArray() | |
NamedValueArray( NamedValue namedValue ) | |
| Methoden | |
Int Count() | Gibt die Gesamtzahl der Elemente im Array zurück. |
NamedValue GetAt( Int index ) | Gibt das Element mit der angegebenen Indexnummer zurück. |
Void Add( NamedValue namedValue ) | Fügt dem Array einen benannten Wert hinzu. |
Void Add( NamedValueArray namedValueArray ) | Fügt einem Array benannter Werte ein weiteres Array benannter Werte hinzu. |
Void InsertAt( Int index, NamedValue namedValue ) | Fügt den benannten Wert an der angegebenen Indexposition ein. |
Void DeleteAll() | Löscht alle Elemente eines Arrays. |
Void DeleteAt( Int index ) | Löscht das Element an der angegebenen Indexposition. |
Int FindByName( String name ) | Gibt die Position des Werts mit dem Namen name zurück. |
Funktionen
- Der Pfad zur Dokumentdefinition und der Name des Datensatzes werden verwendet, um auf den Datensatz zuzugreifen, wenn in ABBYY FlexiLayout Studio mit einem FlexiLayout gearbeitet wird.
- Nachdem ein kompiliertes FlexiLayout in FlexiCapture zu einer Dokumentdefinition hinzugefügt wurde, wird für den Zugriff auf den Datensatz nur noch dessen Name verwendet.
-
Format von connectionString:
Hinweis: Trennen Sie die Bestandteile des Pfads durch doppelte Backslashes (
\\). - searchFields — Array mit den Namen der Spalten, aus denen Werte abgerufen werden sollen.
-
searchCriteria — Array von Spalte-Eintrag-Paaren; wenn leer, werden alle Werte zurückgegeben.
- Wenn eine Abfrage mehrere Werte für ein Feld enthält, verwenden Sie den Operator OR.
- Wenn eine Abfrage mehrere Werte enthält, die jeweils nur einem Feld entsprechen, verwenden Sie den Operator AND.
- Wenn eine Abfrage mehrere Werte für ein Feld sowie Werte für mehrere Felder enthält, verwenden Sie den Operator OR, um mehrere Werte für ein Feld zu unterscheiden, und den Operator AND, um die Werte verschiedener Felder zu verknüpfen.
| Definition | Beschreibung |
|---|---|
Logic TestAccessToFCDataSet( String connectionString ) | Testet die Verbindung zum Datensatz. |
Logic TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Testet die Suchbedingungen für den Datensatz. |
StringArray FieldNamesOfFCDataset( String connectionString ) | Gibt eine Liste aller Felder aus dem Datensatz zurück, sortiert in aufsteigender Reihenfolge ihrer Indexnummern. |
StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) | Gibt eine Liste der Felder aus dem angegebenen Datensatz in aufsteigender Reihenfolge ihrer Indexnummern zurück. Sollte zusammen mit der Funktion RecordOfFCDataset verwendet werden, wenn komplexe Spalten vorhanden sind. |
Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Gibt die Anzahl der Datensätze aus dem Datensatz zurück, die in den Suchbedingungen angegeben sind. Dient dazu, zu ermitteln, wie viele Datensätze mit der Funktion RecordOfFCDataset zurückgegeben werden können. |
Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Bereitet die Daten für eine Abfrage an den Datensatz vor. Dies muss vor dem Aufruf der Funktion RecordOfFCDataset für jeden neuen Satz von Suchbedingungen erfolgen. |
StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) | Gibt ein Array mit Werten aus dem Datensatz mit der Nummer rowIndex aus den Ergebnissen einer Abfrage an den Datensatz zurück. Die Anzahl der Werte entspricht der Anzahl der in searchFields übergebenen Felder (einschließlich komplexer Spalten). |
Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ) | Gibt die Quality der Zeichenfolge word zurück. Akzeptiert Indexnummern von Feldern. Sie können die Indexnummern durch Indizierung der Ausgabe der Funktion FieldNamesOfFCDataset abrufen. |
Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Wird verwendet, um Suchbedingungen für Wörter für die Funktion Static Text anzugeben. Wenn diese Funktion aufgerufen wird, werden vorhandene Suchbedingungen durch neue ersetzt. Akzeptiert Feldindexnummern. Sie können die Indexnummern durch Indizierung der Ausgabe der Funktion FieldNamesOfFCDataset abrufen. |
Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Wird verwendet, um Suchbedingungen mithilfe regulärer Ausdrücke für die Funktion CharString anzugeben. Wenn diese Funktion aufgerufen wird, werden vorhandene Suchbedingungen durch neue ersetzt. Akzeptiert Feldindexnummern. Sie können die Indexnummern durch Indizierung der Ausgabe der Funktion FieldNamesOfFCDataset abrufen. |
In einem Bild nach Einträgen aus einer Spalte in einer externen Datenbank suchen
Die Spalten auflisten
Verwenden Sie FieldNamesOfFCDataset, um eine nach den Indexnummern aufsteigend sortierte Liste der Spalten abzurufen.
Den Spaltenindex ermitteln
Ermitteln Sie die Indexnummer der Spalte, aus der Sie Daten suchen möchten.
Den Filter erstellen
Erstellen Sie ein array von Bedingungen, um Daten aus dem Datensatz zu filtern.
In einem Bild nach Einträgen aus mehreren Spalten suchen
Die Spalten auflisten
Erstellen Sie ein array mit den Namen der Spalten, in denen Sie Daten suchen möchten.
Den Filter erstellen
Erstellen Sie ein array mit Filterbedingungen, um Daten aus dem Datensatz zu filtern.
Die Einträge zählen
Ermitteln Sie mit der Funktion RecordCountOfFCDataset die Anzahl der zurückgegebenen Einträge.
Die Abfrage vorbereiten
Bereiten Sie die Abfragedaten mit der Funktion PrepareRecordsetOfFCDataset vor.
Jeden Datensatz lesen
Gehen Sie alle Datensätze durch und rufen Sie für jeden Datensatz mit der Methode RecordOfFCDataset das array ab.
Zusätzliche Hinweise zu komplexen Spalten
-
Die Funktion FieldNamesOfFCDataset gibt ein Array zurück, das den Namen der komplexen Spalte mehrfach enthält. Die Anzahl der Vorkommen entspricht der Anzahl der Spalteninstanzen in einer kodierten externen Datenbank.
Beispiel:
{VendorId, VATID, Name, Name, Name, City}. In diesem Fall enthält die externe Datenbank drei Spalten für die eine komplexe Spalte Name im Datensatz. - Wenn SearchCriteria eine Bedingung für ein Feld enthält, das einer komplexen Spalte entspricht (wie im obigen Beispiel), wird diese Bedingung verwendet, um alle diese Spalteninstanzen zu überprüfen.
-
Wenn searchFields eine Bedingung für ein Feld enthält, das einer komplexen Spalte entspricht (wie im obigen Beispiel), enthält das Ergebnis ein Array mit den Werten aus jeder Spalteninstanz.
Wenn Sie zum Beispiel für
{VendorId, VATID, Name, Name, Name, City}Folgendes anfordern: - Sie können eine Liste der zurückgegebenen Spalten abrufen, indem Sie das Array searchFields an die Funktion FieldNamesOfFCDataset übergeben.
