values validar vacio suprimir reports parametros nulos evaluar duplica crystal campos campo crystal-reports

crystal reports - validar - Crystal informa 11: el campo en blanco bombardea el informe



validar campo vacio en crystal report (7)

Creo que la sentencia condicional falla inmediatamente si encuentra un NULL, por lo que su fórmula necesita probar IsNull ({tarPrintInvcHdrWrk.Posted}) antes de probar la igualdad con "1".

Estoy creando un informe de cristal de factura para el módulo Sage mas 500 AR. En él, estoy intentando agregar el campo tarinvoice.balance con la siguiente fórmula:

if {tarPrintInvcHdrWrk.Posted} = 1 then ToText({tarInvoice.Balance})

Supongo que cuando la sentencia condicional {tarPrintInvcHdrWrk.Posted} = 1 contiene FALSE, no intenta extraer el campo de la factura porque cuando elimino la fórmula del informe, el formulario se muestra correctamente sin ella.

Cuando el enunciado condicional se convierte en verdadero en el informe, los campos del balance se comportan correctamente. Sin embargo, con la fórmula se presenta FALSO en la forma CR, todo el informe de Crystal se bombardea y se muestra en blanco. ¿Alguna idea de por qué o qué estoy haciendo mal?

Solo traté de configurar todo a cero y el informe sigue bombardeando. Estoy comenzando a pensar que es más un error de consulta en el informe. Desearía que hubiera una manera de excluir el campo en la consulta cuando se publique = 0.

Con tarinvoice.balance eliminado cuando publicado = 0, el informe funciona bien.
Con tarinvoice.balance incluido y publicado = 1, el informe funciona bien.

Con tarinvoice.balance incluido y publicado = 0, informar bombas.


Modifiqué la fórmula a esto:

if isnull({tarPrintInvcHdrWrk.Posted}) = FALSE then if {tarPrintInvcHdrWrk.Posted} = 1 then if isnull({tarInvoice.Balance}) = FALSE then ToText({tarInvoice.Balance}) else "0.00" else "0.0" else "0"

El informe de cristal todavía muestra bombas. Sin embargo, muestra "0" en el espacio apropiado.


Puede cambiar la forma en que Crystal maneja un valor nulo para un valor en una fórmula. En la parte superior del Taller de fórmulas hay un cuadro desplegable que generalmente dice "Excepciones para nulos".
Cambie esto a la otra opción "Valores predeterminados para nulos" y su fórmula ya no debería explotar. Antes podías especificar los valores predeterminados aplicados, pero las versiones más recientes de Crystal tienen estos códigos rígidos. Busque ayuda en "Tratamiento nulo" en una tabla que los muestre.


Vi una sugerencia en Exp.Exch para tratar de poner el campo en una variable antes de convertirlo en texto.
p.ej

NumberVar InvoiceBalance; If isnull({tarInvoice.Balance}) then InvoiceBalance := 0 Else InvoiceBalance := {tarInvoice.Balance}; If {tarPrintInvcHdrWrk.Posted} = 1 then ToText(InvoiceBalance);

También traté de recrear tu problema, ya que he visto cosas similares antes.
Sin suerte, intentando con CR 8.5 y XI R2. Perhpas también tiene que ver con tablas vinculadas, ya que solo probé en una sola tabla simple.
También he visto un comportamiento similar cuando uso una fórmula dentro de un Total acumulado: ¡no les gustan nada los nulos!


Si coloca {tarInvoice.Balance} directamente en el informe (en la sección de detalles de "depuración", que a menudo se necesita, no olvide suprimirlo en la producción :)), ¿qué valores muestra o informa que se vacían?


Tal vez tenga la sección Suprimir si en blanco en su informe. Intenta poner: Else ""


if isnull({tarPrintInvcHdrWrk.Posted}) or {tarPrintInvcHdrWrk.Posted}=0 then " " else if {tarPrintInvcHdrWrk.Posted} = 1 then ToText({tarInvoice.Balance}) else " "

Tengo problemas con este tipo de campo al hacer informes para exportar a Excel. Un campo sin datos introducirá todas las columnas a la derecha para "llenar el espacio".