Skip to main content
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. Verwenden Sie Elemente vom Typ Zeichenkette, um die Felder Gesamtmenge und Gesamtbetrag zu erkennen. Um die gemeinsamen Suchbedingungen für diese Elemente festzulegen, erstellen Sie ein Gruppenelement — grTotal.

Erstellen des Gruppenelements grTotal

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 aus, damit die Suche nach den Subelementen abgebrochen wird, wenn der Name fehlt.
    Weitere Informationen finden Sie unter 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;

Erstellen Sie das Element TotalQuantity

Das Feld Gesamtmenge befindet sich am Schnittpunkt der Zeile Gesamtbetrag und der Spalte Menge. Die erste Suchbedingung wurde bereits auf der Ebene des Elements Group festgelegt. Um die zweite Suchbedingung festzulegen, verwenden Sie 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 Zeichenanzahl dieses Fuzzy-Intervall an: {-1, 1, 10, INF}. Dies ist eine Schätzung der Länge der Zeichenkette. Gehen Sie davon aus, dass die möglichen Werte zwischen 1 und 10 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 Gesamtmenge immer auf derselben Höhe wie das Schlüsselwort Footer.kwTotal oder etwas 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
    Bevor Sie die Werte für die Versätze festlegen, sollten Sie die geometrischen Eigenschaften (d. h. Größe und Grenzen) der benachbarten Objekte analysieren, die bei der Voraberkennung erkannt wurden. Offset-Werte werden durch Versuch und Irrtum ermittelt.
  7. Klicken Sie auf die Registerkarte Advanced.
  8. Da das Feld Gesamtmenge auf den Bildern optional ist, aber, wenn es vorkommt, immer zusammen mit der Spalte Menge und unterhalb ihrer Bezeichnung erscheint, legen Sie die folgende zusätzliche Suchbedingung im Feld Advanced pre-search relations fest: Suchen Sie nur dann nach dem Objekt auf dem 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. Versuchen Sie, das FlexiLayout mit den Testbildern abzugleichen, 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 Source element aus.

Erstellen des Elements TotalAmount

Das Feld Gesamtbetrag befindet sich am Schnittpunkt der Zeile Gesamtbetrag (der Fußzeile der Tabelle) und der Spalte Gesamtbetrag. Die erste Suchbedingung wurde bereits auf der Ebene des Elements Gruppenelement festgelegt. Um die zweite Suchbedingung zu definieren, verwenden Sie 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 Zeichenanzahl das folgende Fuzzy-Intervall an: [-1, 1, 20, 2147483647]. Dies ist eine Schätzung der Länge der Zeichenkette. Gehen Sie 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 übrigen Parameter des Elements.
  5. Klicken Sie auf die Registerkarte Relations.
  6. Da sich das Feld Gesamtbetrag immer auf derselben Höhe wie die Schlüsselwörter mit dem Namen 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 unter dem Namen der Spalte Gesamtbetrag (möglicherweise mit einer kleinen Verschiebung) und nur zwischen den Spalten Stückpreis und Sales befinden kann, legen Sie im Feld Advanced pre-search relations die folgende zusätzliche Suchbedingung fest: Wenn das Element TableHeader.kwTotal erkannt wurde, suchen Sie nach dem Objekt höchstens 70 dots rechts der rechten Begrenzung des Elements TableHeader.kwTotal und höchstens 50 dots links der linken Begrenzung des Elements TableHeader.kwTotal. Oder: Wenn die Elemente TableHeader.kwUnitPrice und TableHeader.kwSales erkannt wurden, suchen Sie nach dem Objekt höchstens 40 dots rechts der linken Begrenzung des Elements TableHeader.kwSales und rechts der rechten Begrenzung 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;
    Bevor Sie die Werte für die Offsets festlegen, sollten Sie gegebenenfalls die geometrischen Eigenschaften (d. h. Größe und Begrenzungen) der benachbarten Objekte analysieren, die während der Voraberkennung erkannt wurden. Offset-Werte werden durch Versuch und Irrtum ermittelt.
  9. Führen Sie den Abgleich des FlexiLayouts 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 Schaltfläche „Durchsuchen” und wählen Sie das Element TotalAmount als Source element aus.