Problema con Reporte Agrupado
Hola, tengo este problema con un reporte. Tengo 2 tablas, una llamada TipoAct y la otra
Llamada Actividades, con estas dos tablas trato de obtener un reporte que me muestre cada
Uno de los tipos de actividades y los minutos invertidos en cada uno de los tipos y
También la suma total de minutos de todos los tipos. Si no hay actividades para un tipo
De actividad debe de mostrarme el tipo de actividad en el reporte con el campo número de
Minutos invertidos igual a 0. Una salida sería algo así:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
4-----------OTROS------------------3---------------------15
Ese sería un ejemplo sencillo de lo que quiero obtener y significa que por ejemplo, del
Tipo de actividad 1 se han realizado 2 actividades que arrojaron un total de 30 minutos,
1 del tipo 2 que dio 20 min, etc. Bueno, mi reporte está agrupado por el id del tipo de
Actividad y la tabla tipoact está ligada con la actividades por medio del iIdTipoAct y la
Liga es de tipo LEFT OUTER JOIN (la cual pongo en visual linker que está en crystal),
Para que cuando no exista alguna actividad de un tipo, me ponga de todas maneras el tipo
Con su suma en 0. Bueno, hasta aquí estaba todo correcto, pero resulta que este reporte
No me es del todo útil así, sino que realmente lo necesito obtener filtrado entre dos
Fechas. Bueno, al agregarle el selection fórmula y 2 parámetros que me representan la
Fecha inicial y la fecha final queda algo así en mi record selection fórmula:
{Actividades.dFechaAct}>={?pdFechaIni} and {Actividades.dFechaAct}<={?pdFechaFin}.
Bueno, pues cuando hago esto el filtro funciona, pero si en los registros que se obtienen
Del filtro, no hay una actividad de un tipo en ese rango, no me pone la fila
Correspondiente en el reporte. Por ejemplo, si al reporte de arriba le aplico un filtro
De fechas y resulta que las última actividades del tipo OTROS no están en ese rango, el
Reporte queda:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
debiendo quedar:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
4-----------OTROS------------------0----------------------0
¿Alguien sabe qué está mal o por qué al aplicarle el filtro hace eso? Cómo puedo hacer
¿Qué me lo ponga como debe de ser?. Agradezco la ayuda... Si alguien está interesado, le
Puedo mandar la base de datos y el rpt a su correo. Les agradezco de antemano la ayuda,
Llevo 2 días con esto y no sale...
Llamada Actividades, con estas dos tablas trato de obtener un reporte que me muestre cada
Uno de los tipos de actividades y los minutos invertidos en cada uno de los tipos y
También la suma total de minutos de todos los tipos. Si no hay actividades para un tipo
De actividad debe de mostrarme el tipo de actividad en el reporte con el campo número de
Minutos invertidos igual a 0. Una salida sería algo así:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
4-----------OTROS------------------3---------------------15
Ese sería un ejemplo sencillo de lo que quiero obtener y significa que por ejemplo, del
Tipo de actividad 1 se han realizado 2 actividades que arrojaron un total de 30 minutos,
1 del tipo 2 que dio 20 min, etc. Bueno, mi reporte está agrupado por el id del tipo de
Actividad y la tabla tipoact está ligada con la actividades por medio del iIdTipoAct y la
Liga es de tipo LEFT OUTER JOIN (la cual pongo en visual linker que está en crystal),
Para que cuando no exista alguna actividad de un tipo, me ponga de todas maneras el tipo
Con su suma en 0. Bueno, hasta aquí estaba todo correcto, pero resulta que este reporte
No me es del todo útil así, sino que realmente lo necesito obtener filtrado entre dos
Fechas. Bueno, al agregarle el selection fórmula y 2 parámetros que me representan la
Fecha inicial y la fecha final queda algo así en mi record selection fórmula:
{Actividades.dFechaAct}>={?pdFechaIni} and {Actividades.dFechaAct}<={?pdFechaFin}.
Bueno, pues cuando hago esto el filtro funciona, pero si en los registros que se obtienen
Del filtro, no hay una actividad de un tipo en ese rango, no me pone la fila
Correspondiente en el reporte. Por ejemplo, si al reporte de arriba le aplico un filtro
De fechas y resulta que las última actividades del tipo OTROS no están en ese rango, el
Reporte queda:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
debiendo quedar:
TipoAct----NombreAct------CantidadRealizadaDeTipo---MinutosTot
1-----------SOPORTE----------------2--------------------30
2-----------APOYO SOFT------------1---------------------20
3-----------APOYO HARD------------0----------------------0
4-----------OTROS------------------0----------------------0
¿Alguien sabe qué está mal o por qué al aplicarle el filtro hace eso? Cómo puedo hacer
¿Qué me lo ponga como debe de ser?. Agradezco la ayuda... Si alguien está interesado, le
Puedo mandar la base de datos y el rpt a su correo. Les agradezco de antemano la ayuda,
Llevo 2 días con esto y no sale...
2 respuestas
Respuesta de xabi
1
Respuesta de ignacioproso
1