Mostrando entradas con la etiqueta Reporte en Delphi. Mostrar todas las entradas
Mostrando entradas con la etiqueta Reporte en Delphi. Mostrar todas las entradas

jueves, 30 de agosto de 2012

6-) Agrupar Datos


Hola, regreso después de un buen tiempo, eh estado bastante ocupado, mi hijo ah comenzado la escuela y eso me mantiene mas ocupado.

Bueno voy a los que les interesa, el tema de hoy es como hacer un reporte que pueda agrupar nuestra información por grupos, en nuestro caso deseamos ver las transacciones por cada cliente. para esto realice una consulta con los siguientes datos.

Cliente Transacion Documento Total
Adrian Guzman Venta 2388 L. 5,000.00
Anacleto Rodriguez Abono 1056 L. 1,500.00
Miguel Marco Gol Venta 2387 L. 150.00
Miguel Marco Gol Venta 2386 L. 600.00
Plutarco Telemaco Hernandez Venta 2389 L. 6,000.00
Plutarco Telemaco Hernandez Venta 2385 L. 930.00
Ramon Calavera Calva Abono 1057 L. 3,000.00
Ramon Calavera Calva Venta Anulada 1867 L. 25.00
Ramon Calavera Calva Venta 2399 L. 25.00

como pueden observar, la información esta ordenada por el cliente, esto es importante, porque siempre debemos ordenar nuestros datos por medio del campo que seamos utilizar para agrupar la información.

Para nuestro ejercicio usaremos unos controles mas en nuestro DataModulo un AdoQuery, FrxDBDataset y FrxReport. La objecto FrxDbTransaciones cambiaremos la propiedad "username" al valor "Transaciones"




Ahora procedemos a crear el reporte, utilizaremos el wizar primero, le damos doble clic en RptTransaciones
despues nos aparece la interface de fastreport, le damos clic en el menu File->new(ver siguiente imagen)




Despues no aparece un cuadro de dialogo para usar el wizard , seleccionamos "Transaciones" como dataset



Ahora seleccionamos los campos que componen nuestro reporte(ver siguiente imagen)


Seleccionamos el campo por el cual deseamos agrupar, en nuestro caso es cliente (ver siguiente imagen)


Le damos "next"  dos veces y seleccionamos la opciones que preferimos. tendremos nuestro reporte así.
Si observamos nuestro reporte tiene dos bandas que son nuevas para nosotros la banda "GroupHeader" que esta señalada en la imagen por la fecha verde y la banda "Groupfooter" que es señalada por la flecha roja.

La banda "GroupHeader" es la banda que define como se agrupan los datos, esta banda se usa generalmente para poner el dato que se agrupa en este caso, el nombre del cliente.

La banda "GroupFooter" es usada generalmente para totalizar la información por cada grupo.

Si damos una vista previa nuestro reporte se ve así ahora.



La banda "GroupHeader" es la encargada de imprimir el nombre de cada cliente y agrupar sus datos.
Bueno y como agrupa los datos la banda "GroupHeader"?. Esta banda utiliza un expresión lógica para esto. para acceder a esta expresión solo le damos doble clic a la banda "GroupHeader" y aparecerá la siguiente ventana.




La fecha en rojo indica como se agrupara nuestro reporte, se selecciona el Dataset y luego el campo, en nuestro caso es el campo cliente.

La fecha verde indica la opciones que tenemos disponibles en los grupos, las cuales detallare breve mente

Keep group together : nos permite siempre mantener unido en una sola hoja tanto lo que imprime la banda "groupheader" y la banda "masterdata"

Start new page: si activamos esta opción, lo que pasara es que cada grupo comenzara con una hoja nueva

Drill-Dow: esta es muy interesante con esta podemos interacturar con nuestro reporte como si fuera un treeview o algo asi. podemos expandir o contraer la información.

ahora totalizaremos , tomamos la banda "groupfooter" la hacemos mas ancha y colocamos un objecto
de texto, y aplicamos un subtotal asi como lo hicimos aquí.

el resultado sera el siguiente.


Espero que sea de utilidad, hasta la próxima.





Descarga el contenido de esto blog. Texto y videos. http://adf.ly/1SLDQq

jueves, 24 de mayo de 2012

1-) Mi primer reporte en FastReport

Hola,

Vamos a grano, primero que nada creamos un proyecto con un formulario y un botón


Luego agregamos a nuestro proyecto un datamodule. En mi ejemplo yo me conecto con Ado y usaremos dos controles de fastReport para este ejercicio.
Entonces en el datamodule tendremos cuatro objectos un Adoconnection, Adoquery, frxDBDataset y un frxReport 


Yo estoy asumiendo que ya saben usar Adoconnection y el Adoquery, asi que no me detengo ahí.

Lo primero que hacemos es connectar el frxDBDataset con nuestro objecto de acceso a datos, en este caso  es el Adoquery llamado "cliente", pero puede ser un Adotable. La propiedad se llama dataset

Depues doble click en el objecto frxReport llamado  "rptClientes" y no carga la interface de fastreport

Creamos un reporte sencillo, le damos click en File->new... y nos aparecera la siguiente ventana.
Estando aqui le damos en la opción "Standard Report Wizard" para poder hacer un reporte atravez del asistente. le damos ok y no aparece lo siguiente

En esta ventana fastreport nos muesta un combox, donde seleccionamos el objecto FrxDBclientes. Inmediatamente aparece esto.
Aquí seleccionamos las columnas de nuestro reporte, usando los botones add, Remove. 
Es importante establecer el orden las columnas, podemos usar los botones en forma de flecha.
Ok, ya casi terminamos a le damos click en siguiente.
En esta parte la usamos para reporte que agrupen datos, por los momentos no lo usaremos. seguimos y le damos click en "next"

Esta ultima parte ya seleccionamos si el reporte es horizantal o vertical y otras cosillas por ahi. bueno terminemos, demole click en "Finish" y gualaaa!!
aqui esta nuestro reporte, podemos modificar los textos,colores, rayas y otras cosas, pero eso se los dejo a ustedes. solo cierren el FastReport.

Regresamos al formulario y escribimos este código en el evento click del botón que seria asi:

DmTable.RptClientes.ShowReport;


Es pero su comentarios, gracias



Descarga el contenido de esto blog. Texto y videos. http://adf.ly/1SLDQq