Saltar al contenido principal
Los siguientes ejemplos de JavaScript ilustran patrones habituales de las reglas avanzadas de script: comprobar la presencia de campos, comparar valores numéricos, aplicar validaciones condicionales y validar datos de tablas. Cópielos y adáptelos a sus propios nombres de campo y reglas de negocio.

Verificar que un campo esté presente

Por ejemplo, comprobemos que el campo MyField se haya encontrado y esté rellenado:

Comparar números de punto flotante

Comparar directamente números de punto flotante puede producir resultados impredecibles. Use métodos del objeto integrado Math para comparar números —especialmente valores monetarios— de forma fiable.

Exigir un valor no vacío en función de otro campo

Un campo opcional puede volverse obligatorio en función del valor de otro campo. Por ejemplo, si MaritalStatus es Married, se deben completar los campos de nombre del cónyuge. Esta regla de script verifica que, cuando MaritalStatus es Married, tanto SpouseFirstName como SpouseLastName estén completos:

Compruebe que un campo esté localizado en el documento

Las reglas también pueden completar los valores de los campos, incluso si el valor no está realmente impreso en el documento. Por ejemplo, si se aplican varios impuestos, el impuesto total puede calcularse automáticamente. Sin embargo, algunos países exigen que el impuesto total aparezca impreso en el documento. Esta regla de script comprueba que, para los recibos de Alemania, el impuesto total esté presente en la imagen. Para otros países, no se requiere ninguna comprobación adicional porque la opción Required field está activada para el campo de impuesto total:

Validar los datos en casos particulares

Comprobar que el impuesto Total sea igual a la suma de todos los impuestos puede hacerse con una regla predefinida (Check Sum). Pero si uno de los impuestos puede tener un valor negativo en ciertos países, solo una regla de script puede contemplar ambos casos: sumar todos los impuestos o sumar y restar un impuesto de devolución, según el país de origen. Este script comprueba que la suma de dos impuestos sea igual al impuesto Total, excepto en los recibos de España, donde la suma o la diferencia de ambos puede ser igual al impuesto Total:

Comparar la suma de una columna con un campo externo

Los scripts pueden hacer referencia a valores de tablas, no solo a campos normales. Para acelerar la verificación de reglas, guarde las tablas como variables y haga referencia a esas variables en lugar de volver a recuperar la tabla. Si una variable contiene una tabla completa, use la propiedad Instances para acceder a las filas y luego use GetChild para obtener una celda específica de una fila. El ejemplo a continuación suma todos los valores de la columna Total Price y compara el resultado con el campo Total:

Comparar las celdas de una columna con un campo externo y enumerar las filas con errores

También se puede hacer referencia a las columnas de una tabla con Context.GetFields para obtener cada celda de la columna, lo cual resulta útil para configurar bucles. El siguiente ejemplo compara la tasa impositiva de cada fila con la tasa impositiva general. Cuando los valores no coinciden, el script continúa en lugar de fallar de inmediato, recopila los números de fila con discrepancias y los muestra en el mensaje de error:

Comparar el producto de los valores de una fila con otro valor de la misma fila

Puede realizar operaciones en diferentes columnas de una tabla fila por fila sin usar bucles explícitos: haga referencia a cada columna mediante Context.GetField. Esto crea una regla repetitiva que se ejecuta automáticamente para cada fila. Todas las columnas referenciadas de este modo deben pertenecer a la misma tabla. El siguiente ejemplo multiplica la cantidad de unidades por el precio unitario en cada fila y compara el resultado con el precio total de la línea: