Zum Hauptinhalt springen
Die Analyse der Testbilder zeigt, dass die Felder Gesamtmenge und Gesamtbetrag nur zusammen mit dem Namen Footer.kwTotal vorkommen und sich auf gleicher Höhe befinden. Wir verwenden Elemente vom Typ Zeichenkette, um die Felder Gesamtmenge und Gesamtbetrag zu erkennen. Um die gemeinsamen Suchbedingungen für diese Elemente festzulegen, müssen wir ein Gruppenelement — grTotal — erstellen. So erstellen Sie das Gruppenelement grTotal:
  1. Erstellen Sie im Element Footer ein Gruppenelement und nennen Sie es grTotal.
  2. Wählen Sie Optional element, da wir entschieden haben, die Suche nach den Subelementen abzubrechen, wenn der Name fehlt. Hinweis. Weitere Informationen finden Sie im Hilfeartikel Tips and tricks\The “Optional” property of a Group element.
  3. Klicken Sie auf die Registerkarte Advanced.
  4. Da die Felder Gesamtmenge und Gesamtbetrag im Bild nur zusammen mit dem Namen Footer.kwTotal vorkommen, legen Sie im Feld Advanced pre-search relations die folgende zusätzliche Suchbedingung fest:Wenn das Element Footer.kwTotal nicht erkannt wurde, suchen Sie nicht nach dem Objekt im Bild. In der FlexiLayout-Sprache: If Footer.kwTotal.IsNull Then DontFind;
Das Feld Gesamtmenge befindet sich am Schnittpunkt der Gesamtzeile und der Spalte Menge. Die erste Bedingung wurde bereits auf Ebene des Gruppenelements festgelegt. Um die zweite Bedingung anzugeben, verwenden wir den zuvor erkannten Spaltennamen als Referenzelement. So erstellen Sie das Element TotalQuantity:
  1. Erstellen Sie im Element grTotal ein Element vom Typ Zeichenkette und nennen Sie es TotalQuantity.
  2. Klicken Sie auf die Registerkarte Zeichenkette.
  3. Geben Sie im Feld Character count dieses unscharfe Intervall an: {-1, 1, 10, INF}. Dies ist eine Schätzung der Länge der Zeichenkette. Wir gehen davon aus, dass die möglichen Werte zwischen 1 und 10 liegen. Alle Hypothesen außerhalb dieses Bereichs werden abgewertet.
  4. Belassen Sie für die übrigen Parameter des Elements die Standardwerte.
  5. Klicken Sie auf die Registerkarte Relations.
  6. Da sich das Feld Gesamtmenge immer auf gleicher Höhe mit den Schlüsselwörtern des Namens Footer.kwTotal oder leicht darunter befindet, legen Sie die folgenden Suchbedingungen fest:
    • Oberhalb des Elements Footer.kwTotal, Offset = -200, Reference boundary = Bottom
    • Unterhalb des Elements Footer.kwTotal, Offset = -20, Reference boundary = Top Hinweis. Bevor Sie die Werte für die Offsets festlegen, empfiehlt es sich, die geometrischen Eigenschaften (d. h. Größe und Grenzen) der benachbarten Objekte zu analysieren, die während der Voraberkennung erkannt wurden. Offset-Werte werden durch Versuch und Irrtum ermittelt.
  7. Klicken Sie auf die Registerkarte Advanced.
  8. Da das Feld Gesamtmenge in den Bildern optional ist, aber, wenn es vorkommt, zusammen mit der Spalte Menge und unter deren Namen erscheint, legen Sie im Feld Advanced pre-search relations die folgende zusätzliche Suchbedingung fest:Suchen Sie nur dann nach dem Objekt im Bild, wenn das Element TableHeader.kwQuantity erkannt wurde; Suchen Sie nicht weiter als 50 dots links oder rechts von den entsprechenden Grenzen des Spaltennamens. In der FlexiLayout-Sprache: If Not (TableHeader.kwQuantity.IsNull) Then { LeftOf: TableHeader.kwQuantity.Right, -50 * dot; RightOf: TableHeader.kwQuantity.Left, -50 * dot; } Else DontFind;
  9. Führen Sie ein Matching des FlexiLayout mit den Testbildern durch und stellen Sie sicher, dass das Programm das Element in allen zutreffenden Bildern erfolgreich erkennt.
  10. Um die Position des Blocks TotalQuantity zu beschreiben, wählen Sie die Option Source element aus, klicken Sie dann auf ”” und wählen Sie das Element TotalQuantity als Quellelement aus.
Das Feld Gesamtbetrag befindet sich am Schnittpunkt der Gesamtzeile (der Fußzeile der Tabelle) und der Spalte Gesamtbetrag. Die erste Bedingung wurde bereits auf Ebene des Gruppenelements festgelegt. Um die zweite Bedingung anzugeben, verwenden wir die zuvor erkannten Spaltennamen als Referenzelemente. So erstellen Sie das Element TotalAmount:
  1. Erstellen Sie im Element grTotal ein Element vom Typ Zeichenkette und nennen Sie es TotalAmount.
  2. Klicken Sie auf die Registerkarte Zeichenkette.
  3. Geben Sie im Feld Character count dieses unscharfe Intervall an: [-1, 1, 20, 2147483647]. Dies ist eine Schätzung der Länge der Zeichenkette. Wir gehen davon aus, dass die möglichen Werte zwischen 1 und 20 liegen. Alle Hypothesen außerhalb dieses Bereichs werden abgewertet.
  4. Belassen Sie die Standardwerte für die anderen Parameter des Elements.
  5. Klicken Sie auf die Registerkarte Relations.
  6. Da sich das Feld Gesamtbetrag immer auf derselben Höhe wie das Schlüsselwort Footer.kwTotal befindet, legen Sie die folgenden Suchbedingungen fest:
    • Oberhalb des Elements Footer.kwTotal, Offset = -20, Reference boundary = Bottom.
    • Unterhalb des Elements Footer.kwTotal, Offset = -20, Reference boundary = Top.
  7. Klicken Sie auf die Registerkarte Advanced.
  8. Da sich das Feld Gesamtbetrag nur direkt unterhalb (gegebenenfalls mit einer kleinen Verschiebung) des Namens der Spalte Gesamtbetrag und nur zwischen den Spalten Stückpreis und Sales befinden kann, legen Sie die folgende zusätzliche Suchbedingung im Feld Advanced pre-search relations fest:Wenn das Element TableHeader.kwTotal erkannt wurde, suchen Sie nach dem Objekt nicht weiter als 70 dots rechts von der rechten Grenze des Elements TableHeader.kwTotal und nicht weiter als 50 dots links von der linken Grenze des Elements TableHeader.kwTotal ; oder, wenn die Elemente TableHeader.kwUnitPrice und TableHeader.kwSales erkannt wurden, suchen Sie nach dem Objekt nicht weiter als 40 dots rechts von der linken Grenze des Elements TableHeader.kwSales und rechts von der rechten Grenze des Elements TableHeader.kwUnitPrice *; andernfalls suchen Sie nicht nach dem Objekt.*In der FlexiLayout-Sprache: If Not (TableHeader.kwTotal.IsNull) Then { LeftOf: TableHeader.kwTotal.Right, -70 * dot; RightOf: TableHeader.kwTotal.Left, -50 * dot; } Else If Not (TableHeader.kwUnitPrice.IsNull) and Not (TableHeader.kwSales.IsNull) Then { LeftOf: TableHeader.kwSales.Left, -40 * dot; RightOf: TableHeader.kwUnitPrice, 0 * dot; } Else DontFind; Hinweis. Bevor Sie die Werte für die Offsets festlegen, sollten Sie die geometrischen Eigenschaften (d. h. Größe und Grenzen) der benachbarten Objekte analysieren, die während der Voraberkennung erkannt wurden. Offset-Werte werden durch Versuch und Irrtum ermittelt.
  9. Führen Sie ein Matching des FlexiLayout mit den Testbildern durch und stellen Sie sicher, dass das Programm das Element in allen zutreffenden Bildern erfolgreich erkennt.
  10. Um die Position des Blocks TotalAmount zu beschreiben, wählen Sie die Option Source element aus, klicken Sie dann auf und wählen Sie das Element TotalAmount als Source element aus.