Valores nulos en Crystal Report

Santi
09 de Junio del 2004
Hola a todos:

Tengo un problema con los valores nulos de una tabla al hacer un reporte de la misma. Os cuento un poco:

Tengo una tablas con los siguientes campos:

"Tabla_proyectos" "Tabla_contactos"
id_proyecto id_contacto
titulo nombre
cliente telefono
id_contacto ...
descripcion
....

He comenzado hace poco ha utilizar crystal por lo que no se... El caso es que he vinculado las tablas a través del campo id_contacto, lo que ocurre es que el id_contacto de la tabla proyectos puede tener valores nulos.

Todos los datos de la tabla proyectos se muestran en el encabezado del informe y cuando intento sacar el nombre del contacto, si el valor no es nulo lo hace bien pero si es nulo, no sale NADA en el encabezado, ni siquiera los datos de la tabla proyectos.

He intentado de todo, lo mas sensato creo que ha sido utilizar un función como la siguiente:

if isnull({tabla_proyectos}.id_contacto) then
"Contacto nulo"
else
{tabla_proyectos}.id_contacto

Pero con esto tampoco funciona(Deja la cabecera en blanco si el campo es nulo) porque creo que sigue comprobando el inculo y como no se puede establecer pasa de mi.

Agadecería mucho vuestra ayudo porque ya no se que más probar.

Un saludo y gracias de antemano.


Santi
09 de Junio del 2004
HE ENCONTRADO UNA SOLUCIÖN!!!!!!!!

Me contesto yo mismo porque es posible que a alguien le venga bien. Lo he solucionado con subinformes. Creo un subinforme con la tabla contactos y vinculo el campo id_contacto del subinforme con el campo id_contacto de la tabla proyectos del informe principal, de esta manera si el id_contacto de la tabla principal el nulo, en el subinforme no se carga nada pero si se cargan el resto de datos en el informe principal.


GRACIAS DE TODOS MODOS A LOS QUE OS HABEIS MOLESTADO EN LEERME.

Oscar
09 de Junio del 2004
Con el LEFT OUTER JOIN también lo hubieras podido solucionar, sin tener que recurrir a los subinformes.

Un saludo.

Santi
09 de Junio del 2004
Como he comentado en el mensaje principal no tengo mucha idea, llevo una semana pegandome con el Crystal y hasta ayer no he conseguido un manual (de la versión 8 y yo uso la 9 (la de VS.Net))

Esa instrucción que me comentas que se pondría, en una función?

Oscar
09 de Junio del 2004
Ops! He metido la pata con lo del LEFT OUTER JOIN.
De todasd formas, en las propiedades de los elementos que incluyes en un informe puedes establecer una fórmula para el string de presentación. Podrías poner algo como:

If IsNull({Tabla.campo}) Then
"Es un valor nulo."
Else
{Tabla.campo}

que imagino es más eficiente que el uso de subinformes.

Un saludo.

Santi
09 de Junio del 2004
Ahora me he dado cuenta de lo que es LEFT OUTER JOIN. Es el tipo de vinculo que creas entre las tablas!
También lo había probado. Y si te fijas, lo del Isnull también lo comento en el mensaje principal, tampoco funciona porque creo que al hacre referencia por código a un campo que se obtiene de una relación y no poder establecer esa relación el programa considera que no hay datos que cumplan todos los requisitos y no muestra nada. Sinceramente he probado muchas cosas y la unica solución que he encontrado es esta, aunque estoy dispuesto a probar lo que sea, que conste!

Me voy a aprobechar un poco y te voy ha hacer otra preguntilla! Sabes como hacer para que, aunque en el report principal exista un subinforme, si pinchas sobre el, no se habra?

Gracias por todo oscar!

Oscar
09 de Junio del 2004
Prueba a poner el código anterior, pero en un campo de fórmula. A mí me funciona.

Un saludo.

Santi
09 de Junio del 2004
Lo he probado y a mi no me va. Tendremos algo diferente. He probado consultando si es null el id de la tabla proyectos que me relaciona con la de contactos(id_contacto) y he probado consultando si es null el campo que quiero visualizar en el fondo que es "nombre" de la tabla contactos.


Perdona por las molestias!