RE:Como creo la conexión al crystal?
Hola Luis
Mi primer uso de reportes fue con el datareport del VB, debido a la exigencia de cosas que hacer que no cubria fue que pase a Crystal, el cual uso actualmente, no soy un experto en Crystal, lo que indicas considero que si se puede hacer pero yo lo realizo de otra forma.
Por ejemplo, yo tengo una tabla llamada REPORTE con campos tales como (ejemplo):
Fecha1, Fecha2, ID, etc...
En VB en la ventana de reporte que hago para X programa (FrmReporte) en el código alimento la tabla REPORTE y en Crystal en su seción de Formula (menu):
Report -> Edit Selection Formula -> Record
Escribo algo como esto:
{Tabla1.ID}={TablaReporte.ID} And {Tabla1.Fecha}>={TablaReporte.Fecha1} And {Tabla1.Fecha}<={TablaReporte.Fecha2}
Si el reporte está conformado no por campos de la tabla sino por campos SQL no hay que validar ya que las condiciones las tiene y las trae consigo la propia SQL, pero yo creo que esto ultimo no es tu caso.
Ahora con respecto a que el Reporte se cargue vacio eso pasa por varias razones, en el Menu de Crystal:
Database -> Visual Linking Expert
Revisa las relacionas de las tablas, Crystal automaticamente siempre relaciona las tablas del reporte por sus campos ID, pero a veces esta relacion automatica entre tablas que hace Crystal es lo que hace que la información no salga. Te diria que quites links y los cambies, pero al cerrar y volver a abrir, Crystal los vuelve a poner como antes, la solucion es revisar los ID en la propia base de datos, posiblemente tengas una tabla de las que usa el Reporte que no tiene un campo clave ID o no es el correcto para Crystal al relacionarlo con otra tabla.
Otra cosa que a veces hace que un reporte salga en blanco es cuando un campo de reporte viene nulo, vacio. No creo que tu problema sea comparar o relacionar dos campos de distintoa formato (numero->text ó num_simple-> num_long, etc) ya que Crystal daría error y lo indicaria pero por si acaso tienes que revisar todo eso.
Revisa primero la relacion de las tablas que hace Crystal, que no hayan campos nulos o al menos no los que usa Crystal para referenciarse y cargar los datos.
Este tipo de problemas tambien ocasiona que un reporte se cargue y se cierre inmediatamente, ya sea porque al programa le falta una DLL de Crystal o porque en la base de datos falta algo que el reporte busca y no encuentra.