Skip to main content
ABBYY FlexiLayout Studio offre plusieurs fonctionnalités spéciales pour développer des FlexiLayouts supplémentaires pour les projets de factures :
  • Vous pouvez définir l’emplacement des éléments par rapport aux régions des champs détectés lors de l’application du FlexiLayout principal du projet de factures.
  • Les identifiants des fournisseurs et des unités commerciales peuvent être utilisés dans les requêtes adressées au jeu de données de la Document Definition.
  • Les listes de mots-clés et les autres paramètres d’un FlexiLayout peuvent être exportés vers un fichier XML, ce qui permet de les modifier sans avoir à modifier le FlexiLayout ni la Document Definition.

Créer un FlexiLayout supplémentaire

1

Ouvrir un lot dans FlexiCapture

Ouvrez un lot contenant des factures reconnues dans FlexiCapture.
2

Créer un projet FlexiLayout Studio

Créez un nouveau projet dans ABBYY FlexiLayout Studio. Dans le menu principal, sélectionnez Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project….
Cette commande n’est disponible que pour les projets FlexiCapture stockés sur votre ordinateur. Si vous utilisez la version Distributed de FlexiCapture et que le projet est stocké sur le serveur, téléchargez-le d’abord sur votre ordinateur en cliquant sur Export Project… dans le menu Project.
Le suffixe du projet ABBYY FlexiLayout Studio indique la version de la Document Definition au moment de la création du projet.
Le projet ABBYY FlexiLayout Studio que vous venez de créer contient tous les documents du lot FlexiCapture, ainsi que les régions de champ détectées lors de la reconnaissance, sous la forme d’une Disposition de référence.

Ajouter un champ à un FlexiLayout supplémentaire

Pour ajouter un champ à un FlexiLayout supplémentaire, créez un bloc pour ce champ et définissez son élément de recherche. Les champs de la Document Definition doivent avoir des noms uniques. Cela signifie que :
  • Pour décrire la logique de recherche d’un champ, créez un bloc avec un nom unique.
  • Pour modifier la logique de recherche d’un champ qui existe déjà dans la Document Definition, créez un bloc portant le même nom.

Ajouter des pages à un FlexiLayout supplémentaire

Si vous souhaitez tester sur de nouvelles images les modifications apportées à un FlexiLayout supplémentaire, vous pouvez exporter vos lots FlexiCapture vers un projet de factures existant dans ABBYY FlexiLayout Studio. Pour exporter vos lots, cliquez sur Outils → Export Batch to FlexiLayout Studio → Ajouter au projet FlexiLayout Studio existant….
  • Vous pouvez exporter des lots FlexiCapture uniquement vers des projets ABBYY FlexiLayout Studio créés en sélectionnant Outils → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project….
  • Lorsque vous exportez un lot FlexiCapture vers ABBYY FlexiLayout Studio, un nouveau lot correspondant à ce lot est créé dans ABBYY FlexiLayout Studio.
  • Si la nouvelle Document Definition comporte plus de champs que la Document Definition utilisée pour le projet ABBYY FlexiLayout Studio, le journal d’exportation contient un avertissement pour chaque champ supplémentaire.
  • Pour que le programme exporte les champs supplémentaires, ajoutez, pour chaque champ supplémentaire, un bloc portant le même nom dans le nœud CommonBlockRegions de l’arborescence SearchElements.

Effectuer des requêtes sur les jeux de données à partir de la Document Definition

Vous trouverez un exemple de requête dans l’élément DataSetRequestSample. Cet élément est désactivé par défaut.

Fonctions

Syntaxe :
  • Le chemin vers la Document Definition et le nom du jeu de données sont utilisés pour accéder au jeu de données lorsque vous travaillez avec un FlexiLayout dans ABBYY FlexiLayout Studio.
  • Une fois un FlexiLayout compilé ajouté à une Document Definition dans FlexiCapture, seul son nom est utilisé pour accéder au jeu de données.
  • Format de connectionString :
    Remarque : Séparez les parties du chemin par des doubles barres obliques inverses (\\).
  • searchFields — Tableau des noms des colonnes dont les valeurs doivent être récupérées.
  • searchCriteria — Tableau de paires Column-Entry ; renvoie toutes les valeurs s’il est vide.
    • Si une requête contient plusieurs valeurs pour un même champ, utilisez l’opérateur OR.
    • Si une requête contient plusieurs valeurs, chacune correspondant à un seul champ, utilisez l’opérateur AND.
    • Si une requête contient plusieurs valeurs pour un même champ et des valeurs pour plusieurs champs, utilisez l’opérateur OR pour distinguer les valeurs multiples d’un même champ et l’opérateur AND pour combiner les valeurs de différents champs.

Rechercher des lignes à partir d’une colonne dans une base de données externe sur une image

1

Lister les colonnes

Utilisez FieldNamesOfFCDataset pour obtenir une liste des colonnes triées par ordre croissant de leur indice.
2

Trouver l’indice de la colonne

Déterminez le numéro d’indice de la colonne dans laquelle vous devez rechercher des données.
3

Créer le filtre

Créez un array de conditions pour filtrer les données du jeu de données.
4

Exécuter la recherche

Transmettez à SearchTextFromFCDataSet les numéros d’indice de la colonne et les conditions de filtre (ou à RegularExpressionFromFCDataSet si vous devez utiliser des expressions régulières).
Ce code est généré automatiquement lorsqu’un lot reconnu est exporté depuis FlexiCapture.

Rechercher dans une image des entrées issues de plusieurs colonnes

Comme les paramètres de recherche sont remplacés chaque fois que vous appelez la fonction SearchTextFromFCDataSet, l’appeler plusieurs fois n’a aucun effet. Pour contourner ce problème, récupérez des string depuis une base de données externe et transmettez-les à la fonction SearchText, qui ajoute chaque string aux paramètres de recherche existants au lieu de les remplacer.
1

Lister les colonnes

Créez un tableau des noms des colonnes dans lesquelles vous devez trouver des données.
2

Créer le filtre

Créez un tableau de conditions de filtre pour filtrer les données du jeu de données.
3

Compter les entrées

Déterminez le nombre d’entrées renvoyées à l’aide de la fonction RecordCountOfFCDataset.
4

Préparer la requête

Préparez les données de la requête à l’aide de la fonction PrepareRecordsetOfFCDataset.
5

Lire chaque record

Parcourez tous les records et récupérez le tableau de chaque record à l’aide de la méthode RecordOfFCDataset.
6

Transmettre les valeurs à SearchText

Transmettez la valeur de chaque élément du tableau à la fonction SearchText.

Considérations supplémentaires concernant les colonnes complexes

  • La fonction FieldNamesOfFCDataset renvoie un tableau contenant plusieurs occurrences du nom de la colonne complexe. Le nombre d’occurrences est identique au nombre d’instances de colonnes dans une base de données externe encodée. Exemple : {VendorId, VATID, Name, Name, Name, City}. Dans ce cas, la base de données externe contient trois colonnes pour l’unique colonne complexe Name dans le jeu de données.
  • Si SearchCriteria contient une condition pour un champ correspondant à une colonne complexe (comme dans l’exemple ci-dessus), cette condition est utilisée pour vérifier toutes les instances de cette colonne.
  • Si searchFields contient une condition pour un champ correspondant à une colonne complexe (comme dans l’exemple ci-dessus), le résultat contient le tableau des valeurs de chaque instance de colonne. Par exemple, si vous demandez les éléments suivants pour {VendorId, VATID, Name, Name, Name, City} :
  • Vous pouvez obtenir la liste des colonnes renvoyées en passant le tableau searchFields à la fonction FieldNamesOfFCDataset.

Effectuer une requête sur un fichier XML contenant des paramètres FlexiLayout

Vous pouvez effectuer des requêtes sur un fichier XML contenant des paramètres FlexiLayout à l’aide de deux fonctions standard décrites dans la documentation d’ABBYY FlexiLayout Studio :
Pour utiliser ce fichier lorsque vous travaillez sur un FlexiLayout dans ABBYY FlexiLayout Studio, placez-le dans le dossier du projet ou dans l’un de ses sous-dossiers. Le chemin d’accès à ce fichier est relatif au fichier de projet ABBYY FlexiLayout Studio. Si vous chargez un FlexiLayout compilé dans une Document Definition de FlexiCapture et l’utilisez comme FlexiLayout supplémentaire, le fichier XML est placé dans le dossier Templates et vous pouvez le modifier. Lorsque le FlexiLayout est appliqué, le programme gère automatiquement l’accès à ce fichier.