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!