4 de agosto de 2008

Informes personalizados por el usuario

Estuve pensando como hacer para agrupar y mostrar los resultados de totales, etc, a pedido del usuario, sin necesidad de crear un informe por cada agrupación.

Entonces la solucion era mas facil de lo que imagine.

EL PROBLEMA:

Tengo una lista de datos en un Grid. Ahora el usuario hace click en los encabezados y este se ordena sobre esa columna.. necesito entonces que cada vez que el usuario hace ordena por una columna el reporte automáticamente agrupe sobre ese orden y totalice esa agrupación.

Este es el ejemplo:



Este es la acción del usuario, ordeno por chofer:



Ahora usando solo un reporte que este interprete la acción del usuario ordene y agrupe y tire los resultados:



LA SOLUCIÓN:

Es simple, crear una variable publica en mi caso frxhabilita... que se le pueda asignar un valor numérico cada vez que el usuario hace click en los encabezados para ordenar.. 1=en el encabezado fecha, 2=producto, 3 = vehículo, etc.

Una vez echo esto pasamos al reporte, en el datagrouping del reporte agrupar pero.. con esta expresión

iif(frxhabilita=4,alltrim(upper(Va_ventaarido.producto)),"")

Si frxhabilita=4, agrupe por producto sino no haga nada.

Les va a quedar algo asi:


Y en cada total indican en printwhen, frxhabilita = 4 ... o sea que solo muestre cuando frxhabilita = 4

Espero les sirva, a mi me solucionó un montón de problemas... sobre todo el estar haciendo un formulario por cada orden que pedía el usuario.

Saludos

Carlos Emilio