- Kopfzeile der Tabelle. Wie zuvor festgelegt, geben wir die Spaltennamen mithilfe bereits erkannter Hilfselemente an.
- Fußzeile der Tabelle. Um die Fußzeile festzulegen, verwenden wir wie zuvor entschieden ein bereits erkanntes erforderliches Element Paragraph aus der Gruppe InvoiceFooter, das den Beginn des Schlussteils kennzeichnet. Dieses Element haben wir als das dem unteren Rand der Tabelle nächstgelegene Element beschrieben.
- Suchbereich für die Tabelle. Wir können den Suchbereich auf der rechten Seite mithilfe des Namens der letzten Spalte Sales begrenzen, die wir für keine anderen Zwecke benötigen.
- Erstellen Sie im Baum SearchElements ein Element vom Typ Table und nennen Sie es InvoiceTable.
- Klicken Sie auf die Registerkarte Columns
- Klicken Sie auf Select, um den zuvor erstellten Block InvoiceTable (siehe Schritt 3) als zu durchsuchenden Block auszuwählen
- Geben Sie die Suchparameter für die Tabellenspalten an:
- Wählen Sie in der Spaltenliste Reference aus und klicken Sie auf die Schaltfläche Properties…
Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwReference. Um es zu verwenden, wählen Sie Use found element as column name aus, klicken Sie dann auf
und wählen Sie TableHeader.kwReference aus. - Wählen Sie in der Spaltenliste Designation aus und klicken Sie auf die Schaltfläche Properties… Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwDesignation.
- Wählen Sie in der Spaltenliste Unit aus und klicken Sie auf die Schaltfläche Properties… Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwUnit.
- Wählen Sie in der Spaltenliste Menge aus und klicken Sie auf die Schaltfläche Properties… Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwQuantity.
- Wählen Sie in der Spaltenliste UnitPrice aus und klicken Sie auf die Schaltfläche Properties… Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwUnitPrice.
- Wählen Sie in der Spaltenliste Gesamtbetrag aus und klicken Sie auf die Schaltfläche Properties… Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwTotal.
- Wählen Sie in der Spaltenliste Reference aus und klicken Sie auf die Schaltfläche Properties…
Für den Namen dieser Spalte verwenden wir das zuvor erkannte Element TableHeader.kwReference. Um es zu verwenden, wählen Sie Use found element as column name aus, klicken Sie dann auf
- Klicken Sie auf die Registerkarte Order.
- Da die Spalten, nach denen wir suchen, möglicherweise durch andere Spalten voneinander getrennt sind (z. B. ExtraQtyTag), ihre Reihenfolge jedoch immer fest ist (zuerst Designation, dann Stückpreis, dann Gesamtbetrag), wählen Sie Rules for column order aus, klicken Sie auf Add…, und fügen Sie die Spalten in der folgenden Reihenfolge hinzu: Designation << Stückpreis << Gesamtbetrag.
- Klicken Sie auf die Registerkarte Header. Wir benötigen die Kopfzeile der Tabelle, müssen jedoch keine zusätzlichen Einschränkungen festlegen, daher belassen Sie die Standardwerte.
- Klicken Sie auf die Registerkarte Footer. Für den Schlussteil der Tabelle verwenden wir das zuvor erkannte Element InvoiceFooter.Paragraph. Wählen Sie die Option Use found element as footer aus, klicken Sie auf
und wählen Sie dann das Element InvoiceFooter.Paragraph aus.
- Klicken Sie auf die Registerkarte Rows.
- Da die Zellen in einigen Spalten mehrere Zeilen enthalten können, müssen wir Master columns für die Zeilentrennung festlegen. Wählen Sie Use master columns to detect rows aus.
Geben Sie zuerst die Spalte Gesamtbetrag an, da diese Spalte immer Daten enthält und in jedem Tabellendatensatz eine Datenzeile aufweist. Falls diese Spalte im Bild nicht erkannt wird, geben Sie die Spalten Stückpreis und Menge als nächste Option für die Zeilentrennung an. Verwenden Sie die Schaltfläche
, um diese Spalten auszuwählen.
- Wählen Sie die Registerkarte Relations aus. Da sich die Tabellenspalten, die uns interessieren, links vom Namen der Spalte Sales befinden, fügen Sie die folgenden Suchbedingungen hinzu:
- Links vom Element TableHeader.kwSales, Offset = 0;
Hinweis. Bei Bildern von schlechter Qualität (z. B. wenn sich Rauschen zwischen Tabellenkörper und Fußzeile der Tabelle befindet oder wenn keine Kopf- oder Fußzeile vorhanden ist) können Sie obere und untere Tabellenbegrenzungen festlegen. In diesem Fall können wir das Element kwDesignation als obere Begrenzung und das Element Paragraph als untere Begrenzung verwenden. Fügen Sie auf der Registerkarte Relations die folgenden Suchbedingungen hinzu:
- Unterhalb der oberen Begrenzung des Elements kwDesignation, Offset = -50, Referenzbegrenzung = Top;
- Oberhalb des Elements Paragraph, Offset = -50; Referenzbegrenzung = Bottom.
- Gleichen Sie das FlexiLayout mit den Testbildern ab. Sie werden feststellen, dass das Programm das Table-Element auf allen Bildern korrekt erkennt, bei einigen Bildern jedoch die Spalte Menge überflüssigen Text aus der vorhergehenden Spalte enthält. Um die relevanten Daten in der Spalte Menge von irrelevanten Daten zu trennen, legen wir den Inhaltstyp für diese Spalte fest.
- Öffnen Sie das Dialogfeld Properties des Table-Elements InvoiceTable. Klicken Sie auf die Registerkarte Columns, öffnen Sie das Dialogfeld Properties… der Spalte Menge, und wählen Sie die Option Check content type aus. Wählen Sie unter Type of column content die Option Number aus.
- Wenn Sie das FlexiLayout jetzt mit den Bildern abgleichen, werden Sie sehen, dass Menge nur Ziffern enthält, genau das, was wir benötigen.
- Legen Sie auf ähnliche Weise für die Spalten UnitPrice und Gesamtbetrag den Inhaltstyp Currency fest.
- Um die Position des Blocks InvoiceTable anzugeben, wählen Sie die Option Source element aus. Klicken Sie auf
und geben Sie InvoiceTable als Source element an.
