- Puede especificar la ubicación de los elementos en relación con las regiones de los campos detectados cuando se aplicó el FlexiLayout principal del proyecto de facturas.
- Los identificadores de proveedores y unidades de negocio pueden usarse en solicitudes al conjunto de datos de la Definición de Document.
- Las listas de palabras clave y otros parámetros de un FlexiLayout pueden exportarse a un archivo XML, lo que permite editarlas sin modificar el FlexiLayout ni la Definición de Document.
Cómo crear un FlexiLayout adicional
Cómo crear un FlexiLayout adicional
- Abra un lote con facturas reconocidas en FC.
- Cree un proyecto nuevo en ABBYY FlexiLayout Studio. En el menú principal, seleccione Herramientas → Exportar lote a FlexiLayout Studio → Crear nuevo proyecto de FlexiLayout Studio…
Árbol | Nodo | Descripción |
SearchElements | CommonBlockRegions | Este nodo contiene elementos que corresponden a todos los campos de la Definición de Document. Las coordenadas de todas las regiones de bloques detectadas cuando se aplicaron los FlexiLayouts a cada documento en FC se guardan en el proyecto de ABBYY FlexiLayout Studio. De forma predeterminada, las regiones con estas coordenadas se asignarán a los elementos que tengan el mismo nombre que los campos de la Definición de Document. Esto permite usarlas para especificar la ubicación relativa de los elementos y para crear elementos nuevos. |
CustomSearchElements | Este nodo contiene elementos de ejemplo. Están deshabilitados de forma predeterminada para evitar interferencias cuando se aplica el FlexiLayout. DataSetRequestSample - Un ejemplo de solicitud al conjunto de datos de proveedores y unidades de negocio almacenados en la Definición de Document. Este conjunto de datos incluye identificadores de proveedores y unidades de negocio. |
Cómo agregar un campo a un FlexiLayout adicional
Cómo agregar un campo a un FlexiLayout adicional
- Para definir la lógica de búsqueda de un campo, tiene que crear un bloque con un nombre único.
- Para cambiar la lógica de búsqueda de un campo que ya existe en la Definición de Document, tiene que crear un bloque con el mismo nombre.
Cómo agregar páginas a un FlexiLayout adicional
Cómo agregar páginas a un FlexiLayout adicional
- Puede exportar lotes de FC solo a aquellos proyectos de ABBYY FlexiLayout Studio que se crearon seleccionando Herramientas → Exportar lote a FlexiLayout Studio → Crear nuevo proyecto de FlexiLayout Studio…
- Cuando exporta un lote de FC a ABBYY FlexiLayout Studio, se creará un lote nuevo en ABBYY FlexiLayout Studio para ese lote.
- Si la nueva Definición de Document tiene más campos que la Definición de Document utilizada para el proyecto de ABBYY FlexiLayout Studio, el registro de exportación contendrá una advertencia por cada campo adicional.
- Para que el programa exporte los campos adicionales, agregue para cada campo adicional un bloque con el mismo nombre en el nodo CommonBlockRegions del árbol SearchElements.
Cómo realizar solicitudes a los conjuntos de datos desde la Definición de Document
Cómo realizar solicitudes a los conjuntos de datos desde la Definición de Document
| Tipo | Descripción |
|---|---|
| NamedValue | Un valor con nombre |
| Constructor | |
| NamedValue( String, String ) | |
| Métodos | |
| String Name() | Devuelve el nombre de un valor con nombre |
| String Value() | Devuelve el valor de un valor con nombre |
| NamedValueArray | Un array de valores con nombre |
| Constructores | |
| NamedValueArray() | |
| NamedValueArray( NamedValue namedValue ) | |
| Métodos | |
| Int Count() | Devuelve el número total de elementos del array. |
| NamedValue GetAt( Int index ) | Devuelve el elemento con el índice especificado. |
| Void Add( NamedValue namedValue ) | Agrega un valor con nombre al array. |
| Void Add( NamedValueArray namedValueArray ) | Agrega un array de valores con nombre a otro array de valores con nombre. |
| Void InsertAt( Int index, NamedValue namedValue ) | Inserta namedValue en la posición indicada por el índice. |
| Void DeleteAll() | Elimina todos los elementos del array. |
| Void DeleteAt( Int index ) | Elimina un elemento en la posición indicada por el índice. |
| Int FindByName( String name ) | Devuelve la posición del valor denominado name. |
Funciones
Sintaxis:- La ruta de la Definición de Document y el nombre del conjunto de datos se utilizarán para acceder al conjunto de datos al trabajar con un FlexiLayout en ABBYY FlexiLayout studio.
- Después de agregar un FlexiLayout compilado a una Definición de Document en FC, solo se utilizará su nombre para acceder al conjunto de datos.
- Formato de connectionString:
- searchFields Array con los nombres de las columnas de las que se deben recuperar los valores.
- searchCriteria
Array de pares Columna-Entrada. Si está vacío, devuelve todos los valores.
- Si una solicitud contiene varios valores para un campo, use el operador OR
- Si una solicitud contiene varios valores, cada uno correspondiente a un solo campo, use el operador AND
- Si una solicitud contiene varios valores para un campo y valores para varios campos, use el operador OR para diferenciar varios valores de un mismo campo y el operador AND para combinar valores de distintos campos.
| Definición | Descripción |
|---|---|
| Lógica TestAccessToFCDataSet( String connectionString ) | Prueba la conexión con el conjunto de datos |
| Lógica TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Prueba las condiciones de búsqueda del conjunto de datos |
| StringArray FieldNamesOfFCDataset( String connectionString ) | Devuelve una lista de todos los campos del conjunto de datos, ordenados de forma ascendente por sus números de índice. |
| StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) | Devuelve una lista de campos del conjunto de datos especificado, en orden ascendente por sus números de índice. Debe usarse junto con la función RecordOfFCDataset cuando haya columnas complejas. |
| Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | Devuelve la cantidad de registros del conjunto de datos especificado en las condiciones de búsqueda. Se utiliza para determinar cuántos registros puede devolver la función RecordOfFCDataset. |
| Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Prepara los datos para consultar el conjunto de datos. Esto debe hacerse para cada nuevo conjunto de condiciones de búsqueda antes de llamar a la función RecordOfFCDataset. |
| StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) | Devuelve un array de valores correspondientes a la entrada con el número rowIndex de los resultados devueltos por una consulta al conjunto de datos. El número de valores es igual al número de campos pasados en searchFields (esto incluye el caso de columnas complejas). |
| Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ); | Devuelve la calidad de la cadena word. Acepta índices de campos. Puede obtenerlos indexando la salida de la función FieldNamesOfFCDataset. |
| Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Esta función se utiliza para especificar las condiciones de búsqueda de palabras para la función de texto estático. Al llamarla, las condiciones de búsqueda existentes se sustituyen por otras nuevas. Acepta números de índice de campo. Puede obtenerlos indexando la salida de la función FieldNamesOfFCDataset. |
| Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Esta función se utiliza para especificar condiciones de búsqueda mediante expresiones regulares para la función CharString. Cuando se llama a esta función, las condiciones de búsqueda existentes se sustituyen por otras nuevas. Acepta números de índice de campo. Puede obtener los números de índice indexando la salida de la función FieldNamesOfFCDataset. |
Cómo buscar filas de una columna de una base de datos externa en una imagen
- Use FieldNamesOfFCDataset para obtener una lista de columnas ordenadas de forma ascendente según sus índices.
- Determine el número de índice de la columna en la que necesita buscar datos.
- Cree un array de condiciones para filtrar los datos del conjunto de datos.
- Pase los índices de la columna y las condiciones de filtro a SearchTextFromFCDataSet (o a RegularExpressionFromFCDataSet, si necesita usar expresiones regulares).
Cómo buscar en una imagen entradas de varias columnas de una base de datos externa
Dado que los parámetros de búsqueda se reemplazan cada vez que se llama a la función SearchTextFromFCDataSet, llamarla varias veces resulta inútil. Sin embargo, existe una solución alternativa: puede obtener cadenas de una base de datos externa y pasarlas a la función SearchText. Al llamar a esta función, la cadena se agrega a los parámetros de búsqueda existentes en lugar de reemplazarlos.Para ello, complete los siguientes pasos:- Cree un array con los nombres de las columnas en las que necesita encontrar datos.
- Cree un array de condiciones de filtrado para filtrar datos del conjunto de datos.
- Determina la cantidad de entradas que devolverá la función RecordCountOfFCDataset.
- Prepare los datos de consulta con la función PrepareRecordsetOfFCDataset.
- Recorra todos los registros y obtenga el array de cada registro con el método RecordOfFCDataset.
- Pasa el valor de cada elemento del array a la función SearchText.
Consideraciones adicionales al trabajar con columnas complejas
- La función FieldNamesOfFCDataset devuelve un array que contendrá varias repeticiones del nombre de la columna compleja. El número de repeticiones será el mismo que el número de instancias de columna en una base de datos externa codificada. Ejemplo: {VendorId, VATID, Name, Name, Name, City}. En este caso, la base de datos externa contiene 3 columnas para la única columna compleja Name del conjunto de datos.
- Si SearchCriteria contiene una condición para un campo que se corresponde con una columna compleja (como en el ejemplo anterior), esta condición se utilizará para verificar todas estas instancias de la columna.
- Si searchFields contiene una condición para un campo que corresponde a una columna compleja (como en el ejemplo anterior), el resultado contendrá el array de valores de cada instancia de la columna. Por ejemplo, si para {VendorId, VATID, Name, Name, Name, City} se solicita
- Puede obtener la lista de columnas que se devolverán pasando el array searchFields a la función FieldNamesOfFCDataset.
Cómo realizar una solicitud a un archivo XML que contiene la configuración de FlexiLayout
Cómo realizar una solicitud a un archivo XML que contiene la configuración de FlexiLayout
