Es muy probable que cuando manejes nombres y apellidos de una tabla de clientes o contactos, muchos de estos vengan vacios o en nulo. Al tener estos valores, el reporte en Crystal no despliega nada ya que al conctenar un valor nulo (suponte sea el nombre) con otro valor no nulo (suponte sea el apellido), el resultado es un valor en blanco o vacio (no visible en el reporte). Esto puede ser frutrante y ocasionarte horas de investigación y tiempo perdido. Bueno, para evitar estos s3, utiliza el siguiente código en una fórmula:
StringVar Firstname;
StringVar Lastname;
StringVar Contact;
if isnull({CONTACT.FIRSTNAME}) then Firstname := "" else Firstname := {CONTACT.FIRSTNAME};
if isnull({CONTACT.LASTNAME}) then Lastname := "" else Lastname := {CONTACT.LASTNAME};
Contact := Firstname & " " & Lastname;
If trim(Contact) <> "" Then Trim(Contact) else "---------";
Como puedes ver, es bastante sencillo evitar este percance. La ultima línea te servirá solamente si quieres mostrar algún carácter (es) que expresen que el valor está vacío.
Otra opción más rápida de lograr lo mismo sería:
Firstname := IIF(isnull({TARJETASCREDITO.PRINCIPALFIRSTNAME}), "", Trim({TARJETASCREDITO.PRINCIPALFIRSTNAME}));
Lastname := IIF(isnull({TARJETASCREDITO.PRINCIPALLASTNAME}), "", Trim({TARJETASCREDITO.PRINCIPALLASTNAME}));
If Lastname = "" Then Firstname Else Firstname & " " & Lastname
Este code fue probado en Crystal Reports XI
StringVar Firstname;
StringVar Lastname;
StringVar Contact;
if isnull({CONTACT.FIRSTNAME}) then Firstname := "" else Firstname := {CONTACT.FIRSTNAME};
if isnull({CONTACT.LASTNAME}) then Lastname := "" else Lastname := {CONTACT.LASTNAME};
Contact := Firstname & " " & Lastname;
If trim(Contact) <> "" Then Trim(Contact) else "---------";
Como puedes ver, es bastante sencillo evitar este percance. La ultima línea te servirá solamente si quieres mostrar algún carácter (es) que expresen que el valor está vacío.
Otra opción más rápida de lograr lo mismo sería:
Firstname := IIF(isnull({TARJETASCREDITO.PRINCIPALFIRSTNAME}), "", Trim({TARJETASCREDITO.PRINCIPALFIRSTNAME}));
Lastname := IIF(isnull({TARJETASCREDITO.PRINCIPALLASTNAME}), "", Trim({TARJETASCREDITO.PRINCIPALLASTNAME}));
If Lastname = "" Then Firstname Else Firstname & " " & Lastname
Este code fue probado en Crystal Reports XI
Comentarios
Publicar un comentario