Reportes con crystalreport

23
Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/ REPORTES CON CRYSTALREPORT Permiten mostrar e imprimir la información proveniente de una tabla, vista o procedimiento almacenado . Procedimientos Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer Crear un proyecto en Visual Basic Net Ubicar un control CrystalReportViewer en el formulario (Use la categoría INFORME del cuadro de herramientas) Crear objeto CrystalReport (que contendrá la información a mostrar o imprimir) Enlazar el control CrystalreportViewer con el objeto CrystalReport usando la propiedad ReportSource Solución Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer BD: MAVILA create database Mavila go use Mavila go create table cliente(idcli char(5) primary key not null, razcli varchar(45),dircli varchar(45),foncli char(8)) go create table empleado(idemp char(2) primary key not null, apeemp varchar(45),sexemp bit,sueemp numeric(9,3)) go create table articulo(idart char(6) primary key not null,

description

Car Center "Rivera & G" : http://carcenterrivera.pusku.com/ Mi web Programador :http://riverasn.p.ht/

Transcript of Reportes con crystalreport

Page 1: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

REPORTES CON CRYSTALREPORT Permiten mostrar e imprimir la información proveniente de una tabla, vista o procedimiento almacenado .

Procedimientos Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer Crear un proyecto en Visual Basic Net Ubicar un control CrystalReportViewer en el formulario (Use la categoría INFORME del cuadro

de herramientas) Crear objeto CrystalReport (que contendrá la información a mostrar o imprimir) Enlazar el control CrystalreportViewer con el objeto CrystalReport usando la propiedad

ReportSource Solución

Crear la fuente (Base de datos, tablas y registros) en Sql Sevrer BD: MAVILA

create database Mavila go

use Mavila go

create table cliente(idcli char(5) primary key not null, razcli varchar(45),dircli varchar(45),foncli char(8)) go

create table empleado(idemp char(2) primary key not null, apeemp varchar(45),sexemp bit,sueemp numeric(9,3)) go

create table articulo(idart char(6) primary key not null,

Page 2: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

desart varchar(45),stock numeric(5,0),precomp numeric(9,2),prevent numeric(9,2)) go

create table factura(idfac char(6) primary key not null, idcli char(5) foreign key(idcli) references cliente(idcli), idemp char(2) foreign key(idemp) references empleado(idemp), fecfac datetime,totfac numeric(9,2),activo bit) go

insert into cliente values('00001','Moinsa S.A','Union 384','234567') insert into cliente values('00002','Trutex S.R.L','Ayacucho 495','294743') insert into cliente values('00003','Nicolini S.A','Junin 887','224566') insert into cliente values('00004','Morin S.A','La Mar 389','283161') insert into cliente values('00005','Pandora S.A','Los Jeranios 345','243171') insert into cliente values('00006','Ticos S.R.L','San Pedro 585','227575') insert into cliente values('00007','Bentin S.A','Ayacucho 102','288841') insert into cliente values('00008','Salinas S.A','Av Peru 696','283461') insert into cliente values('00009','Tours S.R.L','Ayacucho 4094','285677') insert into cliente values('00010','Chicamo S.A','Av. Brasil 885','283484') insert into cliente values('00011','Jarapa S.R.L','Av. España 455','238585') go insert into empleado values('01','Jacinto Rios',1,1000) insert into empleado values('02','Pilar Odria',0,670) insert into empleado values('03','Rosa Perez',1,800) insert into empleado values('04','Carlos Uriol',1,1400) insert into empleado values('05','Mario Perez',1,700) go insert into articulo values('a00001','Cuaderno Loro',200,20,25) insert into articulo values('a00002','Libro Tres Ositos',120,50,60) insert into articulo values('a00003','Libro Lenguaje II',80,45,60) insert into articulo values('a00004','Libro Matematica I',50,35,40) insert into articulo values('a00005','Historia Universal',70,50,58) insert into articulo values('a00006','Geografia',180,25,35) go

Page 3: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

insert into factura values('f00001','00002','02','10/01/2007',200,1) insert into factura values('f00002','00001','04','10/01/2007',70,1) insert into factura values('f00003','00004','01','12/01/2007',175,1) insert into factura values('f00004','00002','02','12/02/2007',650,1) insert into factura values('f00005','00003','02','22/02/2007',160,1) insert into factura values('f00006','00001','03','02/03/2007',458,1) insert into factura values('f00007','00002','05','15/03/2007',58,1) insert into factura values('f00008','00006','03','16/03/2007',60,1) insert into factura values('f00009','00002','01','10/04/2007',125,1) insert into factura values('f00010','00001','04','13/04/2007',60,1) insert into factura values('f00011','00003','02','23/04/2007',93,1) insert into factura values('f00012','00001','04','04/04/2007',160,1) insert into factura values('f00013','00003','01','24/04/2007',58,1) insert into factura values('f00014','00001','03','02/05/2007',200,1) insert into factura values('f00015','00004','04','12/05/2007',35,1) insert into factura values('f00016','00002','04','22/05/2007',40,1) insert into factura values('f00017','00002','04','03/06/2007',60,1) insert into factura values('f00018','00001','01','13/06/2007',193,1) insert into factura values('f00019','00001','01','14/06/2007',40,1) insert into factura values('f00020','00003','01','01/07/2007',35,1) insert into factura values('f00021','00004','02','11/07/2007',120,1) insert into factura values('f00022','00001','03','21/07/2007',25,1) insert into factura values('f00023','00001','03','05/08/2007',180,1) insert into factura values('f00024','00001','03','05/08/2007',200,1) insert into factura values('f00025','00001','03','15/08/2007',100,1) insert into factura values('f00026','00004','02','01/09/2007',60,1) insert into factura values('f00027','00001','02','21/09/2007',158,1) insert into factura values('f00028','00002','01','22/09/2007',25,1) insert into factura values('f00029','00002','01','12/10/2007',60,1) insert into factura values('f00030','00002','01','22/10/2007',40,1) insert into factura values('f00031','00002','01','12/11/2007',93,1) insert into factura values('f00032','00003','04','15/11/2007',50,1) insert into factura values('f00033','00001','04','25/11/2007',180,1) insert into factura values('f00034','00001','04','26/11/2007',60,1) insert into factura values('f00035','00002','03','06/12/2007',40,1) insert into factura values('f00036','00002','03','16/12/2007',100,1) insert into factura values('f00037','00002','03','21/12/2007',170,1)

Page 4: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

insert into factura values('f00038','00002','04','31/12/2007',60,1) insert into factura values('f00039','00001','02','05/01/2008',100,1) insert into factura values('f00040','00002','01','15/01/2008',120,1) insert into factura values('f00041','00002','01','01/02/2008',155,1) go Nota: Observamos que las tablas principales son Cliente, Empleado y Articulo y la tabla foránea es Factura. Siguiendo las reglas de creación, debemos decir que primero se crean las tablas principales o padres y luego las foráneas; además para la inserción de datos, seguimos la misma regla.

Crear un proyecto en Visual Basic Net Nmbre del Proyecto: PrjReportes.vb

Ubicar un control CrystalReportViewer en el formulario (Use la categoría INFORME del

De cuadro de herramientas de la categoría INFORME, haga clic en el control CrystalReportViewer y luego clic en el formulario y el control se ubica como se observa en el formulario de la derecha.

Seleccione el control CrystalReportVewer1 y cambie la propiedad DisplayGrouptree por False. Observe:

Page 5: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Crear objeto CrystalReport (que contendrá la información a mostrar o imprimir)

Esta es la parte mas importante, ya que tendremos que elegir de que fuente (tabla, vista o procedimiento) obtendremos nuestro informe. Por ejemplo, queremos obtener un informe de la tabla principal ARTICULO.

Pasos para crear el Objeto CrystalReport para la tabla Articulo. Menu Proyecto/Agregar Nuevo Elemento … Elija la categoría Reporting y luego la plantilla Crystalreport, como se observa:

Luego haga clic en el botón Agregar y aparece la ventana de Galeria de Crystalreport como se observa:

Page 6: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Luego, haga clic en botón ACEPTAR y aparece :

Haga clic en el símbolo + de Crear nueva conexión:

Luego haga clic en símbolo + de la carpeta OLE DB (ADO)como se observa:

Page 7: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Aparecerá la siguiente ventana, de la cual se elejira el proveedor MICROSOFT OLE DB PROVIDER FOR SQL SERVER, ya que estamos trabajando con una fuente que proviene de un servidor de datos Sql Server, observe:

Haga clic en el botón Siguiente e indique la Información de Conexión, Para eso, marque el check

de Seguridad integrada y luego ubique como nombre de servidor EL PUNTO(.) para finalmente

elegir la Base de datos creada en Sql Server (al inicio y llamada MAVILA) y de la cual haremos un informe de una de sus tablas. Observe:

Luego hacemos Clic en el botón Siguiente y aparece una ventana de estadísticas, observe:

Page 8: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Finalmente hacemos Clic en el botón FINALIZAR, observándose la conexión con la base de datos MAVILA.

Ahora despliegue el símbolo + de la base de datos MAVILA, mostrándose las tablas, vistas y

procedimientos de la Base de datos. Aqui solo aparecen tablas, porque eso fue lo único que creamos al inicio. Observe:

Page 9: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Ahora elija la tabla ARTICULO de la cual deseamos hacer un informe o reportey agréguelo a la lista

de TABLAS SELECCIONADAS, haciendo clic en el botón , observe:

Ahora haga clic en el botón SIGUIENTE y aparace la siguiente ventana de datos:

Page 10: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Despliegue la tabla Articulo, haciendo clic en el signo + para mostrar los campos a ubicar en el

informa, observe. En nuestro caso ubicaremos todos los campos como se observa:

Luego haga clic en el botón SIGUIENTE que nos mostrara la ventana de Agrupamiento, observe:

Nota: Esta ventana la usaremos cuando queramos AGRUPAR POR UN CAMPO, una tabla FORANEA. En este caso como no es el caso, ya que se trata de una tabla Principal, solo hacemos clic en el botón SIGUIENTE, con lo cual se obtendrá la ventana de SELECCIÓN DE REGISTROS, observe:

Page 11: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Aquí tampoco haremos nada, y solo haremos clic en el botón SIGUIENTE, con lo cual se mostrara la ventana para elegir los estilos del informe a mostrar, obseve:

Finalmente hacemos clic en el botón FINALIZAR y habremos obtenido nuestro OBJETO CRYSTALREPORT

Page 12: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Adecue diseño del objeto para mostrarlo de esta forma:

Nota: Para cambiar el color del texto, asi como el color de fondo, primero seleccione el texto REPORTE DE ARTICULOS y luego vaya a las propiedades y elija TEXTCOLOR (con el color deseado)y BACKCOLOR (con el color deseado)

Page 13: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Enlazar el control CrystalreportViewer con el objeto CrystalReport creado usando la propiedad ReportSource

Para eso, primero seleccionamos el control CrystalReportViewer1 creado y que se halla en el

formulario y luego en propiedades, haga clic en la flechita y elija PrjReporte.CrystalReport1, observe:

Aparece información en el control CrystaleReportViewer1 que se halla en el formulario, indicándonos que se realizo el enlace con el Objeto crystalRepor1 en forma idónea, observe:

Finalmente, ejecute el formulario, para obtener el siguiente informe o reporte:

Page 14: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

AHORA, si lo Maximizamos, obtendremos:

Page 15: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Práctica para el alumno: Crear un reporte para la vista VISTAFACTURA creada en la CLASE NRO 13

Reporte por agrupación Por lo general se dan para las tablas o las vistas que provienen de las tablas hijas (relacionadas).

Crear un reporte de Facturas x Clientes usando la vista Vistafactura

En SQL Server 2008

En SQL Server, crear la vista: vistafactura

Alias Nro. Factura Cliente Atendido Por Fecha Emisión

Total

Campo idfac razcli Apeemp fecfac totfac

Tabla Factura Cliente Empleado Factura Factura

Nota: No olvide guardar el script de la vista

Page 16: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Este script es en SQL Server, lo guarda junto con el script de la base de datos y tablas create view vistafactura

as

SELECT dbo.factura.idfac AS [Nro. Factura], dbo.cliente.razcli AS

Cliente, dbo.empleado.apeemp AS [Atendido Por], dbo.factura.fecfac AS

[Fecha Emisión],

dbo.factura.totfac AS Total

FROM dbo.cliente INNER JOIN

dbo.factura ON dbo.cliente.idcli =

dbo.factura.idcli INNER JOIN

dbo.empleado ON dbo.factura.idemp =

dbo.empleado.idemp

go

En Visual Basic Net 2008 Para esto debemos crear un nuevo formulario Form2 Luego nos vamos al menú proyecto y hacemos clic en la opción Agregar Nuevo elemento Luego elegimos la opción Reporting como se observa y luego la plantilla CrystalReports

Luego de dar nuevo nombre (si desea), haga clic en el botón Agregar

Page 17: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Nuevamente Aceptar Despliegue la conexión existente a la base de datos MAVILA y elija la vista VISTFACTURA como se observe y agréguelo a tablas Seleccionadas (lado derecho).

Haga clic en el botón Siguiente y aparece:

Despliegue la vistafactura y elija los campos a mostrar en el reporte como se indica

Page 18: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Haga clic en el botón Siguiente y aparece:

De los campos de informe, elija el campo por el cual se agruparan los restantes, por lo general son los campos de las tablas padres. Para nuestro ejemplo, elegiremos el campo vistafactura.cliente y lo ubicaremos en el lado derecho así como el orden que deseamos que aparezca como se observa:

Page 19: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Hacemos clic en el botón Siguiente

Page 20: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Si usted desea cambiar la función del campo resumido (campo numérico), lo puede hacer, haciendo clic en el campo resumido existente como se observa:

Para nuestro caso, nuestro reporte no tendrá un campo resumido, por lo tanto lo quitaremos como se observa:

Page 21: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Haga clic en botón Siguiente hasta llegar a la última ventana donde se elige el estilo como se observa:

Page 22: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Una vez que elige el estilo, haga clic en el botón Finalizar

Adecue los campos como se observa. Solo el campo de agrupamiento Cliente debe quedar en el área de encabezado y el resto en el área de detalle.

Finalmente en el formulario Form2, agrege el control CrystalReportViewer1

Page 23: Reportes con crystalreport

Programador y Analista De Sistemas Autor : Santos Nilo Rivera Luján

Mi Web: http://riverasn.p.ht/ Mi grupo Programadores: https://www.facebook.com/groups/398604720248657/

Elija el control CrystalreportViewer1 y en la propiedad ReportSource, elija el objeto CrystalReport2

Ejecute ese formulario