> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ejemplo 4. Paso 9.2: campo Total Amount, elemento TotalAmount

> Configure el elemento de cadena de caracteres TotalAmount en el Ejemplo 4 de FlexiLayout Studio, restringiendo su área de búsqueda con relaciones avanzadas de prebúsqueda y posbúsqueda.

Busque el campo **TotalAmount** tanto a la derecha de su nombre como debajo de él.

<div id="create-the-totalamount-element">
  ## Cree el elemento TotalAmount
</div>

<Steps>
  <Step title="Crear el elemento Cadena de caracteres">
    En el elemento **SumGroup**, cree un elemento [cadena de caracteres](/es/flexi-capture/fls/template/character-chain) y asígnele el nombre **TotalAmount**.
  </Step>

  <Step title="Especifique el alfabeto">
    Haga clic en la pestaña **Cadena de caracteres** y especifique el alfabeto:

    `',-.0123456789OSZosz`
  </Step>

  <Step title="Establezca el porcentaje de caracteres ajenos al alfabeto">
    Establezca el **Porcentaje de caracteres no alfabéticos** en 30 %.
  </Step>

  <Step title="Establezca el recuento de caracteres">
    En el campo **recuento de caracteres**, especifique el intervalo difuso `{-1, 1, 20, INF}`, que evalúa la longitud de la cadena. Suponga que todos los valores posibles están comprendidos entre 1 y 20 caracteres. Cualquier hipótesis fuera de este intervalo se penaliza.
  </Step>

  <Step title="Mantenga los demás valores predeterminados">
    No imponga restricciones adicionales y mantenga la configuración predeterminada.
  </Step>

  <Step title="Excluya la región kwTotal">
    Haga clic en la pestaña **Restricciones de búsqueda** y excluya del área de búsqueda la región de la hipótesis del elemento **kwTotal**.
  </Step>

  <Step title="Añadir relaciones previas a la búsqueda">
    Haga clic en la pestaña **Advanced**. En **relación avanzada de prebúsqueda**, especifique condiciones de búsqueda adicionales. Si se detecta el nombre **kwTotal**, defina el área de búsqueda como un array de rectángulos: uno a la derecha del nombre del campo y otro debajo de este, con cierto desplazamiento. De lo contrario, no busque el objeto de imagen. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):

    ```text theme={null}
    If not kwTotal.IsNull Then
    // Si se ha detectado el nombre de campo kwTotal
    {
    WholeWordMode: true;
    MaxGapInLine: 30dt;
    RectArray DataRegion;
    Let r1= Rect (kwTotal.Rect.Right, kwTotal.Rect.Top -20dt, kwTotal.Rect.Right + 1800dt, kwTotal.Rect.Bottom + 50dt);
    // Limita el área de búsqueda a un rectángulo situado a la derecha del nombre de campo.
    Let r2 = Rect (kwTotal.Rect.Left - 100dt, kwTotal.Rect.Bottom, kwTotal.Rect.Right + 100dt, kwTotal.Rect.Bottom + 200dt);
    // Limita el área de búsqueda a un rectángulo situado debajo del nombre de campo.
    DataRegion = RectArray (r1);
    DataRegion.Add (r2);
    RestrictSearchArea (DataRegion);
    }
    else Dontfind();
    // En caso contrario, no buscar el objeto.
    ```
  </Step>

  <Step title="Añada relaciones posteriores a la búsqueda">
    El área de búsqueda del valor del campo se limita a dos rectángulos: uno a la derecha del nombre del campo y otro debajo de él. Cuando el valor del campo está a la derecha del nombre, normalmente hay texto debajo de este. Como este texto redundante queda dentro del área de búsqueda del campo **TotalAmount**, FlexiLayout Studio crea una hipótesis para él.

    Para reducir la calidad de esta hipótesis, especifique una comprobación adicional en **Relaciones avanzadas de posbúsqueda**. Cuanto más por debajo del nombre del campo se encuentre el valor, mayor será la penalización. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):

    ```text theme={null}
    If not IsNull then
    {FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt;
    //Las hypotheses de elements con una region de 400 dots de ancho tendrán la calidad máxima
    if width < 50dt then Quality: 0;
    // Los Elements de menos de 50 dots no se tienen en cuenta
    if Top > kwTotal.Rect.Top then
    { FuzzyQuality: Top - kwTotal.Rect.Top, {0,0,0, 20000}*dt;
    }
    }
    //Esta comprobación implica que cuanto mayor sea la Difference, mayor será la penalización.
    ```

    <Info>
      Para describir las posiciones de los objetos y las distancias entre ellos, FlexiLayout Studio utiliza un sistema de coordenadas bidimensional. El punto (0, 0) se encuentra en la esquina superior izquierda de la imagen. El eje horizontal va de izquierda a derecha y el eje vertical, de arriba abajo.
    </Info>
  </Step>

  <Step title="Probar el FlexiLayout">
    Compruebe el FlexiLayout en las imágenes para confirmar que FlexiLayout Studio detecta de forma fiable el elemento en todas las imágenes en las que aparece.
  </Step>

  <Step title="Defina la región del bloque">
    Especifique la ubicación del bloque **TotalAmount** como la región rectangular del elemento **TotalAmount**, ampliada 5 puntos vertical y horizontalmente. Seleccione **Expression** y especifique la siguiente expresión:

    ```text theme={null}
    Rect outputRect;
    outputRect = SumGroup.TotalAmount.Rect;
    IsNull = SumGroup.TotalAmount.IsNull;
    OutputRegion = outputRect;
    OutputRegion.Inflate (5dt, 5dt);
    ```
  </Step>
</Steps>
