Pregunta

Tengo un datawindow que contiene varios campos.Quiero escribir una expresión de validación para un campo denominado amount.Tengo otros dos campos de nombre debit y credit.Si la suma de débito y de crédito es mayor que la cantidad, entonces quiero mostrar un mensaje de validación para el usuario.

¿Cómo puedo escribir la necesaria validación de la expresión en la Columna de la Especificación de que datawindow?

También quiero escribir expresión de validación para un campo denominado test.Hay un campo denominado criteria.Si este campo se establece en 1, quiero la prueba de campo a ser un campo obligatorio.¿Cómo puedo escribir expresión de validación para esto?

¿Fue útil?

Solución

Hay diferentes maneras de hacer esto, dependiendo de si usted tiene que utilizar la columna que se requiere la validación de la expresión o de la licencia para hacerlo de maneras diferentes.

Consideraciones De Diseño

Es este va a ser un freestyle datawindow donde usted sólo tiene que validar la regla una vez por la pantalla, o un cuadro de estilo donde los usuarios pueden misa entrar conjuntos de datos y la norma debe ser aplicada a cada fila?

¿Quieres obligar a los usuarios a introducir los valores correctos cada vez que un campo requerido obtiene el foco o quieres dejarlos navegar libremente por la pantalla y validar en ahorrar tiempo?

Usted conseguirá algunos de los diferentes respuestas aquí, espero, pero yo prefiero usar la columna de la especificación de expresiones sólo para un control sencillo porque:

  • Complicado lógica en no tiende a ser difícil de leer y mantener
  • Si tiene varias condiciones de error que estamos comprobando, que puede causar un poco difícil de manejar mensajes si utiliza la especificación de columna integrada en el campo de mensaje de error

Sin embargo, voy a conceder que dw expresiones son generalmente muy rápido.

El uso de un Campo Calculado para las Reglas de Validación

Una técnica alternativa es también un intérprete rápido y puede ser utilizado en la mayoría de las versiones de PB.

  • Tienen un campo calculado en el datawindow que tiene un nombre significativo como cf_amount_rule y algo como esto en la expresión: if (debit + credit = amount, 0, 1)
  • Hacer que el campo invisible para el usuario si desea
  • Añadir otro campo calculado en el pie de página a la suma cf_amount_rule y ahora tiene un práctico punto de referencia que rápidamente le dice cuando hay un error
  • Al ahorrar tiempo (o la pfc_validation evento para el PFC de los usuarios) puede comprobar la suma > 0 y mostrará un mensaje de error

OO puristas podrían sugerir que es malo para aplicar la lógica en el datawindow y si te encuentras a ti mismo poniendo en la misma norma en múltiples datawindows que sin duda es un código de olor.Pero por reglas simples que son poco probable que cambie he encontrado una y otra vez que el datawindow es muy eficiente en la ejecución de estas reglas y de ahorro de tener que escribir un montón de código en otros lugares.

Opcional Golosinas

  • Usted puede hacer que el mensaje de error más robustos mediante el find() funcionalidad para identificar las filas con el error
  • Se proporcionan útil de las señales visuales para sus usuarios por el cambio de la fila o de un campo de color de fondo a través de la propiedad de las expresiones que hacen referencia a cf_amount_rule.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top