Ir al contenido principal

Crystal Reports - Concatenando Nombre y Apellido cuando hay Nulos (NULL)

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

Comentarios

Entradas populares de este blog

Instalando MariaDB 10.0.4 y PHP 5 en Kali Linux 1.0

Por si ya estan usando el Kali Linux 1.0 y quieren tener LAMP , he aqui una breve explicacion de lo que deben hacer para implementarlo en su computador. 1. Primero, hacemos un update de nuestra apt con el comando: apt-get update . Una vez finalizado este comando, entramos de lleno en la instalacion del LAMP . 2. Lo primero ha instalar es el Apache . Para ellos ejecutamos el siguiente comando: apt-get install apache2 3. Para poner a correr el Apache en Kali , debes iniciar el servicio con el comando: service apache2 restart El mensaje es un warning ya que estoy usando DHCP . 4. Para probar que el Apache esta trabajando correctamente, abre tu navegador de Internet e ingresa localhost, te debe salir un mensaje que dice: It works! 5. Instalando MariaDB 10.0.4 - Puede descargar el source y compilarlo. - Utilizar los repositorios propios de MariaDB , agregarlos a tu sources.list o crear un source propio para MariaDB (lo que yo recomiendo), para finalmente proceder a ...

AJAX: Redireccionar a una nueva página después de haber iniciado sesión

Estaba trabajando en una app, la cual quería que mostrará un mensaje cada vez que el usuario por error introducía el nombre de usuario o contraseña inválida. Bueno esto no fue díficil, ya que conozco como hacerlo. Pero lo que en ese momento no habia pensado era lo contrario, si el usuario introduce correctamente sus datos, no debo mostrar ningún mensaje. Lo que debo hacer es redireccionar al usuario a su pantalla inicial luego del logeo.

Consultas SQL basadas en fecha y/o hora

Manejando SQL Server 2005, me encontre que tratando hacer consultas basadas en fechas, obtenía como resultado nada (empty). Esto se debía a que no tenía claro como trabajan los tipos de dato datetime y smalldatetime. Estos dos tipos de datos son muy similares, se diferencia en que datetime es más detallado a la hora de almacenar la fecha. Estas diferencias pueden ser vistas en la siguiente tabla: Tipo Minimo Maximo Precision datetime Ene 1, 1753 media-noche Dic 31, 9999 23:59:59.997 (0.003 segundos hasta la media-noche) Más cercano 3.33 millisegundos smalldatetime Ene 1, 1900 media-noche Jun 6, 2079 23:59 (un minuto hasta la media-noche) Más cercano al mínuto Ambos, representan una fecha y hora que es igual al número de días en relación a una fecha base. En SQL Server la fecha base es la medianoche del 1 de Enero de 1900 . Observando la tabla, el tipo de dato smalldatetime, puede solo representar fechas desde esta fech...