Parámetros

Hola:Estoy haciendo informes y tengo un parámetro de fecha de Inicio Informe y Fecha fin de informe(fecha y hora).
Bien, necesito los segundos exactos entre estas fechas, pero el parámetro no distingue entre las 8 de la tarde y las 8 d la mañana.En el editor de formato he cambiado a predeterminado y sigue sin funcionar... Con el resto de las fechas del informe va bien, reconoce las 20:00 y las 8:00 y no las confunde. Sólo es en el parámetro. ¿Cómo puedo hacer esta operación?
Respuesta
1
¿Me puedes mandar un fragmento de código sobre cómo mandas llamar el informe y cómo envías los parámetros de Fecha?
Yo tuve muchos problemas al principio con la version de Crystal que viene con VB5, tuve que separar los campos FechaHora por un campo fecha y otro campo Hora, el campo Hora tuve que hacerlo String porque no lo aceptaba como tipo fecha, no hubo problema pues los querys funcionan bien.
Crystal no se lleva bien con los campos FechaHora, te digo FechaHora por los campos fecha que manejan ambos datos.
Los parámetros los uso en el editor de fórmulas.
Al abrir el informe te pide que elijas una fecha inicio y una fecha fin.
De acuerdo con estas fechas he hecho los cálculos de casi todos los campos.
El problema lo tengo al hacer:
({?Fecha Fin Informe}-{?Fecha Inicio Informe})*24*3600)
Esto te devuelve los segundos entre las fechas que tu elijas al abrir el informe.
Pero si tu eliges por ejemplo como fecha Fin Informe:17/04/01 15:00:00 y fecha inicio informe:17/04/01 3:00:00 la diferencia deberían ser 12 horas y sin embargo el entiende 0.
Muchas gracias
Tal ves esta no es la respuesta que esperas pero es como a mi me ha funcionado bien, hay que separar los campos fecha a 2 campos, uno que maneje solo fecha y otro que maneje solo hora, Crystal no se lleva con los campos de tipo hora, por eso este campo tiene que ser de tipo string que puede ser de 11 letras (12:00:00 AM), de esta forma hay que hacer una fórmula más compleja (que creo ya te estas imaginando).
({?Fecha Fin Informe}-{?Fecha Inicio Informe})*24*3600) - ({?HoraInicioInforme} * 3600) + ({?HoraFinInforme} * 3600)
Aunque aquí manejo horas cerradas hay que tomar en cuenta si hay minutos y segundos en el campo fecha, hay que multiplicar las horas * 3600, los minutos * 60 y sumar los segundos.
Espero encuentres una forma más fácil, toma en cuenta esta salida como ultima opción, pero de que funciona funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas