Reportes

52
7/21/2019 Reportes http://slidepdf.com/reader/full/reportes-56d98b901cab6 1/52 TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 481 - 7 CREANDO REPORTES DE DATOS 1. Trabajando con Impresiones mediante Drawing Para habilitar la impresión de reportes desde el .NET Framework hay que usar el Namespace Sstem.Drawing.Printing que contiene objetos útiles para manejar tareas de impresión. 1.1. !sando e" Objeto de Impresi#n El objeto de impresión permite crear un documento a imprimir, con i!urar sus caracter"sticas, enla#arlo a controles o di$lo!os para reali#ar su presentación preliminar %pre&iew' y inalmente habilita la impresión. 1.1.1. C"ase PrintDoc$ment (a clase Print)ocument es la que permite crear el objeto de impresión, por lo cual describimos sus principales caracter"sticas* % Propiedades % &'todos + E(entos 1.1.). Creando "as P*ginas de" Doc$mento a Imprimir 1.1.+. Rea"i,ando $n Pre(iew con e" PrintPre(iewContro" na &e# construido el documento a imprimir en el e&ento PrintPa!e, lo que si!ue es reali#ar la presentación preliminar del documento %Pre&iew'. Esta se puede hacer de dos ormas* sando un control %PrintPre&iew-ontrol'. sando un di$lo!o %PrintPre&iew)ialo!'. 1.1.-. Imprimiendo e" Doc$mento )espus de crear el documento y reali#ar la presentación preliminar el si!uiente paso es imprimirlo, para lo cual se hace uso del m todo Print del objeto Print)ocument, pdt.Print%' Ejemp"o 1. )emo /0 simpliicado' crear una p$!ina a imprimir con un simple mensaje mediante el objeto Print)ocument y reali#ar un pre&iew de sta mediante el control PrintPre&iew-ontrol. El ejemplo trabaja con un simple ormulario conteniendo un te1to y dos botones donde se debe in!resar un mensaje, el cual se puede &er como saldr$ impreso mediante el botón 2Pre&iew2 o imprimir mediante el botón 2Print2.

description

reportes

Transcript of Reportes

Page 1: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 1/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 481 -

7 CREANDO REPORTES DE DATOS1. Trabajando con Impresiones mediante Drawing

Para habilitar la impresión de reportes desde el .NET Framework hay que usar elNamespace S stem.Drawing.Printing que contiene objetos útiles para manejar tareas de

impresión.

1.1. !sando e" Objeto de Impresi#n

El objeto de impresión permite crear un documento a imprimir, con i!urar suscaracter"sticas, enla#arlo a controles o di$lo!os para reali#ar su presentación preliminar %pre&iew' y inalmente habilita la impresión.

1.1.1. C"ase PrintDoc$ment

(a clase Print)ocument es la que permite crear el objeto de impresión, por lo cual describimos

sus principales caracter"sticas*

% Propiedades% &'todos+ E(entos

1.1.). Creando "as P*ginas de" Doc$mento a Imprimir

1.1.+. Rea"i,ando $n Pre(iew con e" PrintPre(iewContro"

na &e# construido el documento a imprimir en el e&ento PrintPa!e, lo que si!ue es

reali#ar la presentación preliminar del documento %Pre&iew'. Esta se puede hacer de dosormas*• sando un control %PrintPre&iew-ontrol'.• sando un di$lo!o %PrintPre&iew)ialo!'.

1.1.-. Imprimiendo e" Doc$mento

)espu s de crear el documento y reali#ar la presentación preliminar el si!uiente paso esimprimirlo, para lo cual se hace uso del m todo Print del objeto Print)ocument,pdt.Print%'

Ejemp"o 1. )emo /0 simpli icado'

crear una p$!ina a imprimir con un simple mensaje mediante el objeto Print)ocument yreali#ar un pre&iew de sta mediante el control PrintPre&iew-ontrol.

El ejemplo trabaja con un simple ormulario conteniendo un te1to y dos botones donde sedebe in!resar un mensaje, el cual se puede &er como saldr$ impreso mediante el botón2Pre&iew2 o imprimir mediante el botón 2Print2.

Page 2: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 2/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 482 -

1. En el dise3ador de ormularios 4indows, arrastrar 5 control (abel, 5 Te1t6o1, 7 6utton y 5Print)ocument, lue!o con i!urar las propiedades, tal como se muestra en el si!uientecuadro*

Objeto Propiedad /a"or Form5 Te1t 8mpresi9n en .NET con )rawin!

(abel5 Te1t :ensaje a imprimir Te1t6o15 :ultilineTe1

true

6utton5 NameTe1t

btnPre&iewPre&iew

6utton7 NameTe1t

btnPrintPrint

Print)ocument Name Print)ocument5

). Escribir un te1to cualquiera en el cuadro de te1to y clic en el botón 2Pre&iew2 para &ercomo aparecer$ la salida.

Ad(ertencia * ;i no tiene impresoras instaladas se !enerar$ una E1cepción al mostrar el

Page 3: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 3/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 483 -

Pre&iew o mandar a imprimir.

+. -ierre la &entana del Pre&iew y lue!o si tiene una impresora instalada clic en el botón2Print2 para reali#ar la impresión.

CODI0O DE OR&!2ARIO

Public -lass Form5 8nherits ;ystem.4indows.Forms.Form Pri&ate ;ub -rearPa!ina8mprimir% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.)rawin!.Printin!.PrintPa!eE&ent=r!s' ?andles Print)ocument5.PrintPa!e )im 6rocha =s New ;olid6rush%Te1t6o15.Fore-olor' )im @ =s 8nte!er A e.:ar!in6ounds.(e t )im B =s 8nte!er A e.:ar!in6ounds.Top 4ith e.Craphics .)raw;trin!%Te1t6o15.Te1t, Te1t6o15.Font, 6rocha, @, B' End 4ith End ;ub Pri&ate ;ub Pre&iew-on-ontrol% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles btnPre&iew.-lick )im ppc:ensaje =s New PrintPre&iew-ontrol%' 4ith ppc:ensaje .)ocument A Print)ocument5 .)ock A )ock;tyle.Fill .Doom A 7 End 4ith )im rmPre&iew =s New Form%' 4ith rmPre&iew .-ontrols.=dd%ppc:ensaje' .Te1t A 2Pre&iew con el PrintPre&iew-ontrol2 .4indow;tate A Form4indow;tate.:a1imi#ed .;how)ialo!%' End 4ith End ;ub Pri&ate ;ub 8mprimir)ocumento% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles btnPrint.-lick Print)ocument5.Print%' End ;ubEnd -lass

TAREA:odi que otras propiedades del pre&iew por ejemplo, como imprimir &alores de un cuadrode lista o estos &alores.)ock A )ock;tyle.(e t .Doom A 5)im 6rocha =s New ;olid6rush%-olor.From=r!b%700, , ''

Ejemp"o ) .3 &ostrar $n cons$"ta S42 de 5D % )emo //'

Page 4: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 4/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 484 -

Esta demostración tiene por objeti&o ense3ar a crear una pa!ina a imprimir con datos desdeuna base de datos mediante el objeto Print)ocument y reali#ar un pre&iew de sta medianteel control PrintPre&iew-ontrol.

El ejemplo trabaja con un ormulario que al car!ar se conecta a la base de datos 2alumnos2de ; ( ;er&er y ejecuta un comando que llena una tabla de un )ata;et con los códi!os,

nombres y FechaNac de la tabla alumnos. = partir de esta tabla se crea una &ista la cual seenla#a a un control )ataCrid&iew..

(a aplicación tiene un menú principal con una opción de Geporte donde se puede reali#ar Pre&iew de los datos usando el PrintPre&iew-ontrol o imprimirlos usando el m todo Printdel objeto Print)ocument.

Para &er la demostración debemos reali#ar los si!uientes pasos*

1. En el dise3ador de ormularios 4indows, arrastrar 5control )ataCrid<iew5, :enu;trip y Print)ocument, lue!o con i!urar las propiedades,tal como se muestra en el si!uiente cuadro*

Objeto Propiedad /a"or Form5 Te1t Geporte de Empleados)ataCrid<iew Name )ataCrid<iew5:ain:enu Name :ain:enu5Print)ocument Name Print)ocument

). ;eleccione el componente :enu;trip5 y en la partesuperior donde dice 2escriba aqu"H escriba directamente los te1tos del menú y con i!uresus propiedades, tal como se muestra en el si!uiente cuadro*

Objeto Propiedad /a"or :enu8tem5 NameTe1t

mnuGeporteGeporte

:enu8tem55 NameTe1t

mnuPre&iewPre&iew

:enu8tem57 NameTe1t

mnuPrintPrint

+. En la &entana e1plorador de soluciones dar clic en elbotón 2&er codi!o2. B copie el si!uiente códi!o

8mports ;ystem.)ata.;ql-lient8mports ;ystem.Te1t I;trin!6uilder maneja cadenasPublic -lass Form5 8nherits ;ystem.4indows.Forms.Form Pri&ate d&w =s )ata<iew )im -adena-one1ion =s ;trin! A 2)ata;ourceA.J; (E@PGE;;K=ttach)bFilenameAE*J;87 55J)=T>;J=( :N>;7.md K8nte!rated ;ecurityATrueK-onnect TimeoutAL K ser 8nstanceATrue2

Page 5: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 5/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 485 -

Pri&ate ;ub -ar!ar)atos% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :y6ase .(oad )im con =s New ;ql-onnection%-adena-one1ion' )im dap =s New ;ql)ata=dapter% 2;elect -od=lumno,Nombre=lumno,FechaNacFrom =lumnos2 , con' )im dst =s New )ata;et%'

dap.Fill%dst, 2=lumnos2 ' d&w A dst.Tables% 2=lumnos2 '.)e ault<iew )ataCrid<iew5.)ata;ource A d&w End ;ub Pri&ate ;ub -rearPa!ina% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.)rawin!.Printin!.PrintPa!eE&ent=r!s' ?andles Print)ocument5.PrintPa!e )im i =s 8nte!er )im stb =s New ;trin!6uilder%' )im Te1to =s ;trin! )im Fuente =s New Font%2-ourier New2 , 57' )im 6rocha =s 6rush A 6rushes.6lue )im @ =s 8nte!er A e.:ar!in6ounds.(e t )im B =s 8nte!er A e.:ar!in6ounds.Top e.Craphics.)raw;trin!% 2GEP>GTE )E =( :N>;2 , Fuente, 6rocha, @, B' B A B M L For i A To d&w.-ount 5 stb.=ppend%d&w%i'% '.To;trin!.PadGi!ht%5 '' stb.=ppend%d&w%i'%5'.To;trin!.PadGi!ht%70'' stb.=ppend%d&w%i'%7'.To;trin!.PadGi!ht%50'' Te1to A stb.To;trin! e.Craphics.)raw;trin!%Te1to, Fuente, 6rocha, @, B' B A B M Fuente.Cet?ei!ht stb.(en!th A Ne1t End ;ub Pri&ate ;ub :ostrarPre&iew% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :nuPre&io.-lick )im ppc =s New PrintPre&iew-ontrol%' ppc.)ocument A Print)ocument5 ppc.Doom A 5 ppc.)ock A )ock;tyle.Fill )im rmPre&iew =s New Form%' 4ith rmPre&iew .Te1t A 2Pre&iew del Geporte de =lumnos2 .4indow;tate A Form4indow;tate.:a1imi#ed .-ontrols.=dd%ppc' .;how)ialo!%' End 4ith End ;ub Pri&ate ;ub 8mprimirGeporte% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles mnuPrint.-lick Print)ocument5.Print%' End ;ub

Page 6: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 6/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 486 -

End -lass

Ejecute el pro!rama y &era lo si!uiente

Page 7: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 7/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 487 -

&odi6i $e "as sig$ientes propiedades (ea "os res$"tados ppc.Doom A 7como poner nombres de columna

Ejemp"o +. :odi ique el ejemplo anterior de tal manera que obten!a reportes de acuerdoa una consulta in!resada por el usuario en un inputbo1 por ejemplo listar los subtotales por a3o

Page 8: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 8/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 488 -

CODI0O DE2 OR&!2ARIO

8mports ;ystem.)ata.;ql-lient

8mports ;ystem.Te1t I;trin!6uilder maneja cadenasPublic -lass Form5 8nherits ;ystem.4indows.Forms.Form Pri&ate d&w =s )ata<iew )im dst =s New )ata;et%' )im cadena; ( =s ;trin! )im -adena-one1ion =s ;trin! A 2)ata;ourceA.J; (E@PGE;;K=ttach)bFilenameAE*J;87 55J)=T>;J=( :N>;7.md K8nte!rated ;ecurityATrueK-onnect TimeoutAL K ser 8nstanceATrue2 )im con =s New ;ql-onnection%-adena-one1ion' )im dap =s New ;ql)ata=dapter% 22, con'

Pri&ate ;ub -ar!ar)atos% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :y6ase .(oad dst.Tables.-lear%' cadena; ( A 2;E(E-T O FG>: =( :N>;2 dap.;elect-ommand.-ommandTe1t A cadena; ( dap.Fill%dst, 2->N; (T=2 ' )ataCrid<iew5.)ata;ource A dst.Tables% ' d&w A dst.Tables% '.)e ault<iew )ataCrid<iew5.)ata;ource A d&w End ;ub

Pri&ate ;ub -rearPa!ina% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.)rawin!.Printin!.PrintPa!eE&ent=r!s' ?andles Print)ocument5.PrintPa!e )im i =s 8nte!er , ncol =s 8nte!er , ne A 7 )im stb =s New ;trin!6uilder%' )im Te1to =s ;trin! )im Fuente =s New Font%2-ourier New2 , 57' )im 6rocha =s 6rush A 6rushes.Ged )im @ =s 8nte!er A e.:ar!in6ounds.(e t )im B =s 8nte!er A e.:ar!in6ounds.Top

Page 9: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 9/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 489 -

e.Craphics.)raw;trin!% 2GEP>GTE )E 2 -hr%5 ' cadena; (, Fuente, 6rocha, @, B' B A B M 0 ncol A dst.Tables% '.-olumns.-ount stb.(en!th A For j A To ncol 5 8 j A Then

ne A 5 else ne A 7 End 8 stb.=ppend%dst.Tables% '.-olumns%j'.-olumnName.To;trin!.PadGi!ht%ne'' Ne1t Te1to A stb.To;trin! e.Craphics.)raw;trin!%Te1to, Fuente, 6rocha, @, B' B A B M Fuente.Cet?ei!ht stb.(en!th A

)im 6rocha5 =s 6rush A 6rushes.6lue For i A To d&w.-ount 5 For j A To ncol 5 8 j A Then ne A 5 Else ne A 7 End 8 stb.=ppend%d&w%i'%j'.To;trin!.PadGi!ht%ne'' Ne1t j Te1to A stb.To;trin! e.Craphics.)raw;trin!%Te1to, Fuente, 6rocha5, @, B' B A B M Fuente.Cet?ei!ht stb.(en!th A Ne1t End ;ub Pri&ate ;ub :ostrarPre&iew% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :nuPre&io.-lick )im ppc =s New PrintPre&iew-ontrol%' ppc.)ocument A Print)ocument5 ppc.Doom A 5 ppc.)ock A )ock;tyle.Fill )im rmPre&iew =s New Form%' 4ith rmPre&iew .Te1t A 2->N; (T= A 2 cadena; (

.4indow;tate A Form4indow;tate.:a1imi#ed .-ontrols.=dd%ppc' .;how)ialo!%' End 4ith End ;ub

Page 10: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 10/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 490 -

Pri&ate ;ub 8mprimirGeporte% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles mnuPrint.-lick Print)ocument5.Print%' End ;ub

Pri&ate ;ub 6tnCenerarQ-lick% 6y<al sender =s ;ystem.>bject, 6y<al e =s

;ystem.E&ent=r!s' ?andles 6tnCenerar.-lick cadena; ( A 8nput6o1% 28n!rese consulta ; (2 , 2consulta; (2 , 2;E(E-T O FG>: =( :N>;2 ' dst.Tables.-lear%' dap.;elect-ommand.-ommandTe1t A cadena; ( dap.Fill%dst, 2->N; (T=2 ' )ataCrid<iew5.)ata;ource A dst.Tables% ' d&w A dst.Tables% '.)e ault<iew )ataCrid<iew5.)ata;ource A d&w End ;ubEnd -lass

Nota en caso que la tabla ten!a muchos re!istros solo se puede mostrar una pa!ina delreporte como se &e en la i!ur a

1.). !sando Di*"ogos de Impresi#n

(s di$lo!os de impresión se pueden usar junto al objeto Print)ocument para reali#ar unamejor presentación y con i!uración de la impresión.

(os di$lo!os de impresión son L*• )i$lo!o de Presentación Preliminar de 8mpresión %PrintPre&iew)ialo!'.• )i$lo!o de -on i!uración de P$!ina de 8mpresión %Pa!e;etup)ialo!'.• )i$lo!o de 8mpresión %Print)ialo!'.

Page 11: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 11/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 491 -

1.).1. Rea"i,ando $n Pre(iew con e" PrintPre(iewDia"og

)espu s de crear el documento a imprimir en el e&ento PrintPa!e del objetoPrint)ocument podemos reali#ar una mejor presentación preliminar de ste, usando eldi$lo!o de pre&iew, el cual tiene uncionalidad preconstruida para poder hacer #oom, &er &arias p$!inas, imprimir, etc.

-omo todo di$lo!o, el objeto PrintPre&iew)ialo! hereda de la clase -ommon)ialo!, perotiene las si!uientes propiedades adicionales*

)ocument >btiene o establece el documento del que se desea la &ista pre&ia.

se=nti=lias >btiene o establece un &alor que indica si la impresión utili#a lacaracter"sticas de alisado del sistema operati&o.

Para trabajar con el di$lo!o de Pre&iew, tan sólo hay que con i!urar la propiedad )ocumentdel di$lo!o en el objeto Prin )ocument, tal como si!ue*

objPrintPre&iew)ialo!.)ocument R objPrint)ocument

1.).). Con6ig$rando "a P*gina con e" PageSet$pDia"og

Tambi n podemos con i!urar la p$!ina a imprimir mediante un di$lo!o, en donde podemosmodi icar el tipo de papel, el mar!en, la orientación, etc.

Para trabajar con el di$lo!o de con i!uración de p$!ina hay que con i!urar la propiedad)ocument del di$lo!o en el objeto Print)ocument, tal como si!ue*

objPa!e;etup)ialo!.)ocument A objPrint)ocument Para mostrar el di$lo!o de con i!uración de p$!ina llamar al m todo S8owDia"og*

obj Pa!e;etup)ialo!.;how)ialo!%'

=dem$s para recuperar toda la con i!uración del di$lo!o para que pueda ser usada por laimpresión, asi!nar en la propiedad De6a$"tPageSettings del objeto Print)ocument lapropiedad PageSettings del di$lo!o, tal como si!ue*

obj Print)ocument.)e aultPa!e;ettin!s A obj Pa!e;etup)ialo!.Pa!e;ettin!s

Nota: El diálogo de configuración de página automáticamente realiza este último paso, esdecir, toda la configuración seleccionada por el usuario en el diálogo es automáticamenteasignada al objeto PrintDocument.

1.).+. Con6ig$rando "a Impresi#n con e" PrintDia"og

Finalmente, podemos presentar un di$lo!o de impresión donde podamos seleccionar laimpresora, el número de p$!inas, el ran!o de p$!inas, el número de copias, !uardar en un

Page 12: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 12/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 492 -

archi&o, etc. sando las propiedades del objeto PrintDia"og9

Para trabajar con el di$lo!o de impresión, tambi n hay que con i!urar la propiedad Doc$mentdel di$lo!o en el objeto Print)ocument, tal como si!ue*

objPrint)ialo!.)ocument A objPrint)ocument

Ejemp"o - crear una pa!ina a imprimir con un simple mensaje mediante el objetoPrint)ocument y usar los di$lo!os de presentación preliminar, de con i!uración de p$!ina yde impresión. % )emo /S'

El ejemplo es similar al )emo/0, es decir, trabaja con un simple ormulario conteniendo un te1toy tres botones donde se debe in!resar un mensaje, el cual se puede &er como saldr$ impresomediante el botón 2Pre&iew2, con i!urar la p$!ina mediante el botón 2Pa!e ;etup2 o imprimir mediante el botón 2Print2.

Para &er la demostración debemos reali#ar los si!uientes pasos*

1. En el dise3ador de ormularios 4indows, arrastrar un control (abel, un Te1t6o1, tres6utton, un Print)ocument, un PrintPre&iew)ialo!, un Pa!e;etup)ialo! y un Print)ialo!,lue!o con i!urar las propiedades, tal como se muestra en el si!uiente cuadro*En la propiedad cursor de los botones pon!a hand

Objeto Propiedad /a"or Form5 Name

Te1trm8mpresion8mpresiones en .NET con )rawin!

(abel5 Te1t :ensaje a 8mprimir Te16o15 Te1t

6utton5 NameTe1t btnPre&iewPre&iew6utton7 Name

Te1tbtnPa!e;etupPa!e ;etup

6uttonL NameTe1t

btnPrintPrint

Print)ocument Name Print)ocument5PrintPre&iew)ialo! Name PrintPre&iew)ialo!5Pa!e;etup)ialo! Name Pa!e;etup)ialo!Print)ialo! Name Print)ialo!5

) En la &entana e1plorador de soluciones dar clic en el botón 2<er -ódi!o2.B copiar el si!uiente códi!o

Public -lass rm8mpresion 8nherits ;ystem.4indows.Forms.Form Pri&ate ;ub -rearPa!ina8mprimir% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.)rawin!.Printin!.PrintPa!eE&ent=r!s' ?andles Print)ocument5.PrintPa!e )im 6rocha =s New ;olid6rush%Te1t6o15.Fore-olor' )im @ =s 8nte!er A e.:ar!in6ounds.(e t

Page 13: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 13/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 493 -

)im B =s 8nte!er A e.:ar!in6ounds.Top 4ith e.Craphics .)raw;trin!%Te1t6o15.Te1t, Te1t6o15.Font, 6rocha, @, B' End 4ith End ;ub Pri&ate ;ub Pre&iew-on)ialo!o% 6y<al sender =s ;ystem.>bject, 6y<al e =s

;ystem.E&ent=r!s' ?andles btnPre&iew.-lick 4ith PrintPre&iew)ialo!5 I)ialo!o de Pre&iew .)ocument A Print)ocument5 .Te1t A 2Pre&iew usando PrintPre&iew)ialo!2 .4indow;tate A Form4indow;tate.:a1imi#ed .;how)ialo!%' End 4ith End ;ub Pri&ate ;ub -on i!urarPa!ina% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles btnPa!e;etup.-lick 4ith Pa!e;etup)ialo!5 I)ialo!o de Pa!e ;etup .)ocument A Print)ocument5 .;how)ialo!%' End 4ith End ;ub Pri&ate ;ub 8mprimir)ocumento% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles btnPrint.-lick 4ith Print)ialo!5 I)ialo!o de Print .)ocument A Print)ocument5 .=llowPrintToFile A False .=llow;election A True .=llow;omePa!es A True 8 .;how)ialo!%' A )ialo!Gesult.> Then Print)ocument5.Printer;ettin!s A .Printer;ettin!s Print)ocument5.Print%' End 8 End 4ith End ;ubEnd -lass

Nota:a) En el código anterior las variables X e Y son usadas para imprimir el te to a partir

del margen actual.b) En el código anterior no se configura el zoom por código !a "ue el diálogo automáticamente

presenta botones de #oom ! otros botones.c) En el código anterior no se configura el DefaultPage$ettings del Pr%ntDocument !a "ue

el diálogo lo realiza en forma automática.d) En el código anterior se configura las propiedades &llo' del diálogo para permitir mostrar

selección de páginas en el diálogo de impresión. (ambi)n si el . usuario da clic en el botón*+ * del dialogo de imprimir, entonces, se imprime el contenido del cuadro de te to.

Ejecute el pro!rama y &er$ los si!uiente

Page 14: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 14/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 494 -

+ Escribir un te1to cualquiera en el cuadro de te1to, clic en el botón 2Pre&iew2 y se

presentar$ un di$lo!o similar a la i!ura

Observación: -ea como el diálogo trae botones de impresión, zoom, número de páginas a ver ! cerrar ventana.

Page 15: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 15/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 495 -

.- Proceda a con i!urar la p$!ina cambiando el tama3o del papel, la orientación y los

m$r!enes, lue!o clic en 2=ceptar2 para cerrar el di$lo!o y reali#ar los cambios.: Nue&amente de clic en el botón 2Pre&iew2 para &er la presentación de la p$!ina con los

cambios reali#ados, despu s cierre el di$lo!o de Pre&iew.

; -lic en el botón 2Print2 y se presentar$ el di$lo!o de impresión, similar al mostrado en lai!ura

Page 16: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 16/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 496 -

Ejemp"o + . Esta demostración tiene por objeti&o ense3ar a crear un documento con &ariasp$!inas de datos obtenidos desde una base de datos. En sta trabajaremos con todos losdi$lo!os de impresión. Demo ;<=

El ejemplo trabaja con un ormulario que al car!ar se conecta a la base de datos2=( :N>;72 de ; ( ;er&er y ejecuta un comando que llena una tabla de un )ata;et conlos códi!os de alumnos , nombres y echas de nacimientos !enerados para ese e ecto enla tabla =lumnos7 = partir de esta tabla se crea una &ista la cual se enla#a a un control)ataCrid.

(a aplicación tiene un menú principal con una opción de Geporte donde se puede reali#ar Pre&iew de los datos usando el PrintPre&iew)ialo!, con i!urar la p$!ina usando elPa!e;etup)ialo! o imprimir usando el Print)ialo!.

Para &er la demostración debemos reali#ar los si!uientes pasos*

1. En el dise3ador de ormularios 4indows, arrastrar un control )ataCrid<iew, un:enu;trip y un Print)ocument, un PrintPre&iew)ialo!, un Pa!e;etup)ialo! y unPrint)ialo!, lue!o con i!urar las propiedades, tal como se muestra en el si!uientecuadro

*Objeto Propiedad /a"or Form5 Name

Te1trmGeporte=lumnos7Geporte de =lumnos7

)ataCrid&<iew5 Name )ataCrid&<iew5 %d!d>rden

:enu;trip5 Name mnuPrincipalPrint)ocument5 Name Print)ocument5PrintPre&iew)ialo!5 Name PrintPre&iew)ialo!5Pa!e;etup)ialo! Name Pa!e;etup)ialo!Print)ialo!5 Name Print)ialo!5

) ;eleccione el componente &ain&en$ y en la parte superior donde dice 2Escriba =qui2,escriba directamente los te1tos del menú y con i!ure sus propiedades, tal como semuestra en el si!uiente cuadro*

Objeto Propiedad /a"or

:enu8tem5 NameTe1t :nuGeporteGeporte:enu8tem55 Name

Te1t:nuPre&iewPre&iew

:enu8tem57 NameTe1t

:nuPa!e;etupPa!e;etup

:enu8tem5L NameTe1t

:nuPrintPrint

Page 17: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 17/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 497 -

+ En la &entana e1plorador de soluciones dar clic en el botón 2<iew -ode2.B copie el si!uiente códi!o*

8mports ;ystem.)ata.;ql-lient8mports ;ystem.Te1t I;trin!6uilder maneja cadenasPublic -lass rmGeporte=lumnos7

8nherits ;ystem.4indows.Forms.Form Pri&ate d&w =s )ata<iew Pri&ate cr =s 8nte!er )im -adena-one1ion =s ;trin! A 2)ata;ourceA.J; (E@PGE;;K=ttach)bFilenameAE*J;87 55J)=T>;J=( :N>;7.md K8nte!rated ;ecurityATrueK-onnect TimeoutAL K ser 8nstanceATrue2 Pri&ate ;ub -ar!ar)atos% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :y6ase .(oad )im con =s New ;ql-onnection%-adena-one1ion' )im dap =s New ;ql)ata=dapter% 2;elect O From =lumnos72 , con' )im dst =s New )ata;et%' dap.Fill%dst, 2=lumnos72 ' d&w A dst.Tables% 2=(umnos72 '.)e ault<iew )ataCrid<iew5.)ata;ource A d&w End ;ub Pri&ate ;ub -rear)ocumento% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.)rawin!.Printin!.PrintPa!eE&ent=r!s' ?andles Print)ocument5.PrintPa!e )im i =s 8nte!er )im stb =s New ;trin!6uilder%' )im Te1to =s ;trin! )im Fuente =s New Font%2-ourier New2 , 5 ' )im 6rocha =s 6rush A 6rushes.6lue )im @ =s 8nte!er A e.:ar!in6ounds.(e t )im B =s 8nte!er A e.:ar!in6ounds.Top )im (P =s 8nte!er A e.:ar!in6ounds.?ei!ht J Fuente.Cet?ei!ht For i A To (P 8 cr A d&w.-ount 5 Then E1it ;ub stb.=ppend%d&w%cr'% '.To;trin!.PadGi!ht%50'' stb.=ppend%d&w%cr'%5'.To;trin!.PadGi!ht%L '' stb.=ppend%d&w%cr'%7'.To;trin!.PadGi!ht%50'' Te1to A stb.To;trin! e.Craphics.)raw;trin!%Te1to, Fuente, 6rocha, @, B' B A B M Fuente.Cet?ei!ht stb.(en!th A cr A cr M 5 Ne1t e.?as:orePa!es A cr U d&w.-ount 5 End ;ub Pri&ate ;ub :ostrarPre&iew% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :nuPre&iew.-lick PrintPre&iew)ialo!5.)ocument A Print)ocument5 PrintPre&iew)ialo!5.;how)ialo!%' End ;ub

Page 18: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 18/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 498 -

Pri&ate ;ub -on i!urarPa!ina% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :nuPa!e;etup.-lick Pa!e;etup)ialo!5.)ocument A Print)ocument5 Pa!e;etup)ialo!5.;how)ialo!%' End ;ub Pri&ate ;ub 8mprimirGeporte% 6y<al sender =s ;ystem.>bject, 6y<al e =s

;ystem.E&ent=r!s' ?andles :nuPrint.-lick Print)ialo!5.)ocument A Print)ocument5 8 Print)ialo!5.;how)ialo!%' A )ialo!Gesult.> Then Print)ialo!5.Printer;ettin!s A Print)ialo!5.Printer;ettin!s Print)ocument5.Print%' End 8 End ;ubEnd -lass

• a cantidad de l%neas a imprimir de una página / P0 es obtenida dividiendo el alto del margen entre el alto de la fuente.

Para crear una nueva página se usa la propiedad HasMorePage en (rue sólo cuando el contador de registros /cr0 sea menor al %ndice del último registro / dvw.Count-1 0.• El proceso de creación termina cuando no 1a!a más registros "ue mostrar, es decir

cuando el contador de registros llegue a la última posición.

- Crabar y ejecutar la aplicación pulsando F0.

: )el menú 2Geporte2 seleccionar la opción 2Pre&iew2 y se mostrar$ el di$lo!o depresentación preliminar similar a la i!ura

Page 19: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 19/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 499 -

Observación 2 -ea como.el documento tiene 3 páginas creadas para imprimir

; -ierre la &entana del Pre&iew, lue!o si desea con i!ure la p$!ina o reali#e la impresiónmediante las otras opciones del menú de Geportes.

) TRA5A>ANDO REPORTES CON CR?STA2 REPORTS

).1.1. Introd$cci#n-on -rystal Geports para <isual ;tudio .NET, puede crear r$pidamente in ormes complejosde apariencia pro esional. En lu!ar de utili#ar pro!ramación, la inter a# de -rystal Geport)esi!ner le permite crear y dar ormato al in orme que desee. El e ica# motor de in ormesprocesa los criterios de ormato, a!rupamiento y creación de !r$ icos que especi ique.

).1.). Asistente de In6ormes

(os asistentes de -rystal Geport permiten crear r$pidamente in ormes en unción de lasnecesidades de desarrollo*•

;eleccionar la opción de dise3o de in ormes que le interese, desde in ormes est$ndar hasta cartas modelo, o bien cree sus propios in ormes partiendo de cero.• :ostrar !r$ icos en los que los usuarios puedan pro undi#ar con el in de &er datos

detallados de los in ormes.• -alcular resúmenes, subtotales y porcentajes de datos a!rupados.• :ostrar resultados de datos de N ;uperiores y N 8n eriores.• )ar ormato al te1to y rotar objetos de te1to cuando se cumplan determinadas

condiciones.

Page 20: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 20/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 500 -

).1.+. /entajas de In6ormes

1. Para Programadores@• ;elección del len!uaje y del proyecto*• so de los &isores de in ormes* sin clientes %4eb' y &arios clientes %4indows'*• -rystal Geports para <isual ;tudio .NET proporciona dos &isores de in ormes con los que

puede &er in ormes en aplicaciones* utilice 4eb Forms <iewer para las aplicaciones 4eby 4indows Forms <iewer para las aplicaciones de 4indows.

• Personali#ación de &isores para interactuar con otros controles*• :odelo de objetos enriquecido*

). Para !s$arios@• <isuali#ación de -rystal Geports en el 4eb.• =cceso a in ormes per ectamente inte!rados*• F$cil interacción con los in ormes*• E1portación de in ormes*

o

(os usuarios pueden e1portar in ormes a ormatos de :icroso t 4ord y E1cel, as" comoa ormatos P)F, ?T:( y -rystal Geports para <isual ;tudio .NET.

).). Ar $itect$ra de Cr sta" Reports

).).1. Objeto ReportDoc$ment

El ni&el superior del modelo de objetos de -rystal Geports es el objeto Geport)ocument.Este objeto contiene todas las propiedades y todos los m todos necesarios parainteractuar con un in orme y personali#arlo. Puede utili#ar su m todo (oad para abrir unarchi&o de in orme o asi!narle un in orme con tipos declarados.

Para utili#ar Geport)ocument, en primer lu!ar debe hacer re erencia al espacio denombres -rystal)ecisions.-rystalGeports.En!ine, que se encuentra en el archi&o-rystal)ecisions.-rystalGeports.En!ine.dll. ;i ha insertado un in orme en la aplicación,esta re erencia se a!re!ar$ autom$ticamente

% Propiedades• )atabase*• )ata)e inition*• E1port>ptions*• Print>ptions*• Geport)e inition*• Geport>ptions*• ;ummaryln o

).).). indows orms /iewer

;i pro!rama una aplicación 4indows, puede almacenar un in orme en 4indows Forms con

Page 21: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 21/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 501 -

2-rystal Geports 4indows Forms <iewer2, que est$ disponible como control en el cuadro deherramientas de <isual ;tiudio Cr sta"Report/iew=.

% PropiedadesV Table(o!>n8n os*V ParameterFields*

V Geport;ource*).+. Creando Reportes con Cr sta" Reports

).+.1. DiseBando e" In6orme con Cr sta" Report Designer

Esta herramienta puede pro!ramarse directamente desde <isual ;tudio .NET. No esnecesario distribuir Geport )esi!ner con el in orme.Para crear un reporte usando el -rystal Geport )esi!ner debemos reali#ar los si!uientespasos*

1. -rear un )ata;et con Tipo %Typed )ata;et' que sir&a de ori!en de datos para dise3ar elreporte %si!a la indicaciones dadas en adaptador de datos en ;87 55= L<67 557 Wpa! 77W'

.). )el menú 2Project2, seleccionar 2=dd New "tem...2 o pulsar las teclas X-trlY M X;hi tY M X=Y.+. )el di$lo!o de =3adir Nue&o Elemento seleccionar 2-rystal Geport2.

Page 22: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 22/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 502 -

-. Escribir el nombre del reporte y clic en el botón 2>pen2.:. =parecer$ un di$lo!o de 2Ge!istro del ;o tware2, clic en el botón 2Ge!ister (ater2 para

indicar que despu s se re!istrar$.;. ;e mostrar$ la &entana de di$lo!o de Caler"a de Geportes, similar al de la i!ura

Page 23: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 23/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 503 -

.7. En la sección 2-r ar un nue&o documento en -rystai Geport )ocument2 seleccionar

la primera opción 2 sar asistente de in ormes2 para indicar que el reporte se!enerar$ con el asistente de reportes.

<. En la sección 2Ele!ir un asistente 2;tandard2 para indicar que se desea crear un reporteest$ndar %hoja =Z'.. -lic en el botón 2> 2 y aparecer$ la icha 2)ata2 de la &entana del 2Geport E1pert2,

similar a la i!ura

Page 24: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 24/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 504 -

1 . E1pandir el icono de 2Project )ata2, 2=)> .NET )ata;ets2 y lue!o el )ata;et creado.11. ;eleccionar la tabla que se desea usar en el reporte y clic en el botón 28nsert Table2.

Nota: Pueden usarse más de una tabla en el caso de crear reportes agrupados.

1). -lic en el botón 2Ne1t2 y se mostrar$ la icha 2Fields2 del 2Geport E1pert2, similar a la dela i!ura 5 .50.

Page 25: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 25/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 505 -

ig$ra 1 .1: * Ficha 2Fields2 de la <entana del 2Geport E1pertI1+. ;eleccionar los campos que se mostrar$n en el reporte y clic en el botón 2=dd2, si se

desean pasa todos clic en 2=dd =llHNota 2 Despu)s de pasar los campos, se pueden seleccionar ! cambiar el t%tulo delas cabeceras en la opción *4olumn 5eading*.

1-. -lic en el botón 2Ne1t2 y se mostrar$ la icha 2Croup2 del 2Geport E1pert2, similar a la de lai!ura 5 .5/

Page 26: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 26/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 506 -

1:. ;i desea a!rupar los re!istros por al!ún campo en común que ten!an stos

seleccionar dicho campo y clic en el botón 2=dd21;. -lic en el botón 2Ne1t2 y si eli!ió =!rupar por al!ún campo se &er$ la icha 2Total2 del2Geport E1pert2, similar a la de la i!ura 5 .5S.

Page 27: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 27/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 507 -

17. ;eleccionar los campos que se mostrar$n como c$lculos en el pie de losdetalles, lue!o seleccionar cada uno y ele!ir la unción que se quiere mostrarKcontar, suma, promedio, m$1imo, m"nimo, etc.

Page 28: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 28/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 508 -

1<. -lic al botón 2Ne1t2 y si eli!ió =!rupar por al!ún campo se &er$ la icha 2Top N2del 2Geport E1pert2, similar a la de la i!ura 5 .5W

ig$ra 1 .1< * Ficha 2Top N2 de la <entana del 2Geport E1pert21 . ;i desea puede sspeci icar ordenar los datos a!rupados basados en un total o

c$lculo creado.

Page 29: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 29/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 509 -

) . -lic al botón 2Ne1t2 y se &er$ la icha 2-hart2 del Geport E1pert2, similar a la dela i!ura 5 .5[.

)1. ;i desea puede crear un !r$ ico de datos, seleccionando el tipo de !r$ ico, los datos a!ra icar y los t"tulos del !r$ ico.

)). -lic al botón 2Ne1t2 y se &er$ la icha 2;elect2 del 2Geport E1pert2, similar a la de lai!ura

Page 30: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 30/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 510 -

)+. ;i desea puede seleccionar un campo por el cual se desea iltrar los datos, escribiendo

la condición del iltro.)-. -lic al botón 2Ne1t2 y se &er$ la icha 2;tyle2 del 2Geport E1pcrt2, similar a la de la i!ura5 .75

Page 31: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 31/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 511 -

):. Escribir el t"tulo que ir$ en el in orme y seleccionar el estilo de in orme deseado y

clic en el botón 2Finish2 para crear el reporte);. 8nmediatamente se presentar$ sobre el dise3ador de reportes el reportecreado, similar a la i!ura 5 .77

Page 32: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 32/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 512 -

<er &ista pre&ia del in orme principal

Page 33: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 33/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 513 -

)7. Para modi icar el reporte puede usar los controles de la icha 2-rystal Geports2 del2Tool6o12, similar a la &ista en la i!ura

Nota: os controles del cuadro de 1erramientas sólo permiten insertar cuadros dete to, l%neas ! recuadros. $i desea insertar otro tipo de objetos use las barras de1erramientas "ue a continuación e plicamos.

Tambi n puede usar las barras de herramientas del -rystal Geport, similar a lasmostradas en las i!uras 5 .7Z y 5 .70*

ig$ra 1 .)-@ 5arra de 8erramienta Principa" de Cr sta" Reports .

Nota 2 para obtener barra de 1erramientas use el menú ver barra de 1erramientas ! luego4ristal 6eport Principa l Nota 2 a barra de 1erramientas principal permite modificar las caracter%sticas de loscontroles dise7ados en el reporte, tal como la fuente, tama7o, alineación. &demás permite

cambiar caracter%sticas del reporte insertando campos, ordenando, et

ig$ra 1 .):@ 6arra de herramienta 8nsertar de 2-rystal Geports2.Nota 2 a barra de 1erramientas insertar permite agregar totales al reporte, insertar grupos, adicionar subreportes, adicionar un gráfico de datos o insertar una imagen.

) . Finalmente despu s de reali#ar cambios al reporte, proceda a !rabarlo.8ota2 os reportes creados en el 4r!stal 6eports tienen la e tensión rpt.

).+.). Presentando e" In6orme en indows orms /iewer

na &e# creado el reporte con el dise3ador de reportes es necesario presentarlo en unaaplicación de 4indows Forms, para lo cual se usa el &isor de reportes para ormularios4indows, en in!l s 4indows Forms <iewer.

?ay que mencionar que un mismo reporte %archi&o rpt' puede ser usado en 4indows o en4eb, lo único que cambia es el &isor, para el caso de una aplicación 4eb con =;P .NETser$ el 4eb Forms <iewer.

Page 34: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 34/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 514 -

En este caso &eremos sólo el &isor de las aplicaciones 4indows, el cual se encuentra enel 2Tool6o12 como control 2-rystalGeport<iewer2.El &isor de reportes proporciona los si!uientes componentes, que le ayudan a &er unin orme -rystal*

1. 5arra de 8erramientas

El &isor de reportes tiene empaquetado una barra de herramientas similar a la mostradaen la i!ura 5 .7/*

ig$ra 1 .);@ 6arra de herramientas del 2-rystal Geports <iewer2 .

(a barra de herramientas del &isor contiene los si!uientes iconos*• 8r a primera p$!ina.• Getroceder p$!ina.• 8r a una p$!ina especi icada.• =&an#ar p$!ina.•

8r a la última p$!ina.• -errar &entana acti&a %sólo para !rupo o subin orme'.• 8mprimir in orme.• =ctuali#ar in orme.• E1portar un in orme.• :ostrar\ocultar e] $rbol de !rupos.• =umentar\reducir in orme.• 6uscar

Puede personali#ar m$s la barra de herramientas pro!ramando con la descripción de clasede 4indows Forms <iewer. Por ejemplo, para ocultar el icono 6uscar, estable#ca lapropiedad ;howTe1t;earch6utton en False.

-omo alternati&a a la utili#ación de la barra de herramientas predeterminada, puede ocultar la barra de herramientas completa estableciendo la propiedad )isplayToolbar en False. =continuación, puede implementar su propia barra de herramientas con otros controles 4indowsForm %por ejemplo* el control 6utton' y pro!ramar las unciones que necesite utili#ando losm todos, las propiedades y los e&entos de 4indows Forms <iewer.

). Frbo" de 0r$pos

El &isor de reportes tambi n contiene un $rbol de !rupos ubicado en el lado derecho, stesólo aparece si se dan estas dos condiciones*

• El in orme -rystal tiene un $rbol de !rupos.• ?a mostrado u ocultado el icono :ostrar $rbol de !rupos de la barra de herramientas

del &isor.Nota: Puede e pandir ! contraer el árbol de grupos si 1ace clic en el s%mbolo 9 "ue aparece

junto a cada nodo del mismo.

Inserte crista" report (iewer

Page 35: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 35/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 515 -

2a ejec$ci#n de" reporte es "a sig$iente

Page 36: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 36/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 516 -

NOTA ?acer clic con el botón secundario y ele!ir insertar se muestra lo si!uiente

=l esco!er !r$ icos se muestra lo si!uiente

Page 37: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 37/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 517 -

% Demo ; crear un simple reporte de datos usando el -rystal Geport E1port, el Geport)esi!ner y el -rystalGeport<iewer. El ejemplo trabaja con un ormulario que muestra en uncontrol &isor de reportes in ormación de los -lientes de la 6) 2Northwind2 de ; ( ;er&er. Enel reporte se muestran el códi!o, nombre y dirección de los clientes.

Para &er la demostración debemos reali#ar los si!uientes pasos*1. En el dise3ador de ormularios 4indows, arrastrar un control -rystalGeport<iewer,

lue!o con i!urar las propiedades, tal como se muestra en el si!uiente cuadro*

Objeto Propiedad /a"or Form5 Name rmGeporte-liente

-rsytalGeport<iewer

Name)isplayCroupTree)ock

-rsytalGeport<iewerFalseFill

). -rear un )ata;et con Tipo %Typed )ata;et' que sir&a de ori!en de datos para dise3ar elreporte %si!a la indicaciones dadas en adaptador de datos en ;87 55= L<67 557 W pa!77W para ello en el !enerador de consultas arrastre la tabla custumers y seleccionar suscampos C$stomer"D9 Compan Name Address.

Page 38: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 38/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 518 -

+. -lic derecho al objeto 2sqldataadapterH y del menú conte1tual seleccionar 2Cenerate)ata;et2.

-. =parecer$ un di$lo!o, en la opción Ele!ir un )ata;et, por de ecto aparece 2Nue&o2,escribir el nombre para el )ata;et como datasetc$st$mer.

:. En la lista de tablas seleccionar la tabla -ustomers %dap' y clic en 2> 2.;. )el menú 2Project2, seleccionar 2=dd New "tem2 o pulsar las teclas X-trlY M X;hi lY M X=Y.7.)el di$lo!o de =3adir Nue&o Elemento seleccionar 2-rystal Geport2.<. =parecer$ un di$lo!o de 2Ge!istro del ;o tware2, clic en el botón 2Ge!ister (ater2 para

indicar que despu s se re!istrar$.. ;e mostrar$ la &entana de di$lo!o de Caler"a de Geportes % i!ura 5 .5L'.1 . En la sección 2-r ate a New -rystal Geport )ocument2 seleccionar la primera opción

2 sin! the Geport E1pert2 para indicar que el reporte se !enerar$ con el asistente dereportes.

11. En la sección 2-hoose an E1pert2 seleccionar 2;tandard2 para indicar que se deseacrear un reporte est$ndar %hoja =Z'.

1). -lic en el botón 2> 2 y aparecer$ la icha 2)ata2 de la &entana del 2Geport E1pert2% i!ura 5 .5Z'.

1+.E1pandir el icono de 2Project )ata2, 2=)> .NET )ata;ets2 y lue!o el )ata;et 2dst2.1-. ;eleccionar la tabla 2-ustomers2 y clic en el botón 28nsert Table2

.

Page 39: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 39/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 519 -

1:. -lic en el botón 2Ne1t2 y se mostrar$ la icha 2Fields2 del 2Geport E1pert2 % i!ura 5 .50'.1;. -lic en el botón 2=dd =ll2 para mostrar todos los campos en el reporte.

17.)espu s de pasar los campos, modi icar los t"tulos de las cabeceras, para el primer campo -ódi!o, para el se!undo Nombre y para el tercero )irección.1<.-lic en el botón 2Ne1t2 y se mostrar$ la icha 2Croup2 del 2Geport E1pert2 % i!ura 5 .5/'.1 . -lic nue&amente en el bolón 2Ne1t2 ya que nuestro reporte es simple y no tiene

a!rupaciones, se mostrar$ la icha 2-hart2 del 2Geport E1port2 % i!ura 5 .5['.) . -lic en 2Ne1t2 para indicar que no deseamos un !r$ ico de datos y se mostrar$ la icha

2;elect2 del 2Geport E1port2 % i!ura 5 .7 '.)1. -lic en 2Ne1t2 para indicar que no deseamos iltrar y se &er$ la icha 2;tyle2 del 2Geport

E1port2 % i!ura 5 .75'.)). Escribir como t"tulo del reporte 2(ista de -lientes Northwind2 y seleccionar el último

estilo de la lista.

)+. -lic en el botón 2Finish2 para crear el reporte y aparecer$ el -rystal Geport )esi!ner,por si deseamos hacer al!ún cambio.)-. Ge!resar al ormulario y en la &entana e1plorador de soluciones dar clic en el botón 2 <iew

-ode2 y copie el si!uiente códi!o

Public -lass Form5 Pri&ate ;ub :ostrarGeporte% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :y6ase .(oad ;ql)ata=dapter5.Fill%)ata;et-ustumer5, 2-ustomers2 '

Page 40: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 40/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 520 -

)im rpt =s New -rystalGeport5 rpt.;et)ata;ource%)ata;et-ustumer5' -rystalGeport<iewer5.Geport;ource A rpt End ;ubEnd -lass

):. Crabar y ejecutar la aplicación pulsando F0.-lic derecho sobre el -rystal report y en la pesta3a in orme principal e insertar objeto dete1to

8nserte bo1 objeto

(ue!o dar ormato al objeto

);. . na &e# mostrado el reporte podemos hacer #oom, e1portarlo o imprimirlo.

Page 41: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 41/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 521 -

+. Trabajando con In6ormes $sando &S O66ice

L.5 . !sando &S ord para Crear Doc$mentos

+.1.1. Entendiendo e" &ode"o de Objetos de &S ord(os objetos de :icroso t 4ord est$n or!ani#ados en orden jer$rquico, siendo =pplication y)ocument las dos clases principales de la cima de la jerarqu"a. (a !ran importancia deestas dos clases se debe a que la mayor parte del tiempo trabajar$ con la propia aplicación4ord o haciendo al!ún tipo de manipulación en documentos de 4ord.

= continuación presentamos el modelo de objetos de :; 4ord*.

• App"icationEl objeto =pplication representa la aplicación 4ord y es el principal de todos losobjetos. ;us miembros normalmente son aplicables a 4ord en su totalidad. ;e puedenutili#ar sus propiedades y m todos para controlar el entorno de 4ord.

Doc$mentEl objeto )ocument es de &ital importancia para la pro!ramación en 4ord. -uando seabre un documento o se crea un documento nue&o, se est$ creando un objeto)ocument nue&o, que se a!re!a a la colección )ocuments de 4ord. El documento quetiene el oco se llama documento acti&o y se representa mediante la propiedad

=cti&e)ocument del objeto =pplication,

ig$ra 1 .+) * Gesumen del :odelo de >bjetos de :; 4ord

• Se"ection

Page 42: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 42/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 522 -

E" objeto ;electior representa el $rea que est$ seleccionada. -uando se reali#a unaoperación en la inter a# de usuario de 4ord, como poner te1to en ne!rita, seselecciona o resalta el te1to y, a continuación, se aplica el ormato. El objeto ;electionsiempre est$ presente en un documento. =dem$s, tambi n puede representar &ariosbloques de te1to no conti!uos.

RangeEl objeto Gan!e representa un $rea conti!ua de un documento, y se de ine medianteuna posición de car$cter inicial y una posición de car$cter inal. Pueden utili#arse &ariosobjetos Gan!e a la &e#. El mismo documento puede tener de inidos &arios objetosGan!e. n objetoGan!e tiene las si!uientes caracter"sticas*

- Puede ser e5 punto de inserción solamente, un ran!o de te1to o el documentocompleto.

- 8ncluye caracteres no imprimibles como espacios, caracteres de tabulación ymarcas de p$rra o.

- Puede ser el $rea representada por la selección actual, o puede representar otra

$rea di erente de la de la selección actual.- No se !uarda con un documento y sólo e1iste mientras se ejecuta el códi!o.- Cuando se inserta te1to al inal de un ran!o, 4ord ampl"a ste autom$ticamente

para que incluya el nue&o te1to.

5ooGmarGEl objeto 6ookmark se parece al objeto Gan!e en que representa un $rea conti!ua deun documento, con una posición inicial y una posición inal. (os marcadores se utili#anpara marcar una ubicación en un documento o como contenedores de te1to en undocumento. n objeto 6ookmark puede ser el punto de inserción o el documentocompleto. Tambi n se pueden de inir &arios marcadores en un documento. n objeto

6ookmark tiene las si!uientes caracter"sticas que lo distin!uen del objeto Gan!e*- n objeto 6ookmark puede tener nombre.- (os marcadores se !uardan con el documento y, por lo tanto, no desaparecen

cuando cesa la ejecución del códi!o o al cerrar el documento.- )e manera predeterminada los marcadores est$n ocultos, pero pueden hacerse

&isibles si se establece la propiedad ;how6ookmarks del objeto <iew en True. %Elobjeto <iew es un miembro de los objetos 4indow y Pane, que e1isten en losobjetos =pplication y )ocument'.

+.1.). Creando e" Doc$mento en &S ord para e" In6orme

En !eneral, debemos reali#ar los si!uientes pasos para crear un documento para nuestroin orme*

1. =brir el :; 4ord, del botón Iinicio2, seleccionar 2Pro!ramas2, lue!o 2:icroso t > ice 7 2y inalmente 2:icroso t 4ord2.

). )el menú 2<er2 seleccionar 26arras de herramientas2 y ele!ir 2Formularios

Page 43: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 43/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 523 -

ig$ra 1 .++ * 6arra de herramientas de Formularios de :; 4ord.

+. Empe#ar a crear la parte ija del documento, como t"tulos, p$rra os, mensajes, im$!enes,tablas, etc.

-. -uando desee crear un dato &ariable %campo' que se llenar$ desde la base de datos

ubicarse sobre la posición y clic en el primer botón de la barra de ormularios para insertar un 2-ampo con te1to2.:. Proceda a reali#ar el paso anterior para todos los campos o datos &ariables del

documento y inalmente !rabar el documento en la carpeta donde est$ el ejecutable dela aplicación.Nota: 4uando desarrollamos aplicaciones :indo's usando el -isual $tudio .8E(, lacarpeta donde está la aplicación /el ejecutable o exe) es ;a carpeta Bin "ue seencuentra dentro de la carpeta con el Pro!ecto.

+.1.+. 2"enando e" Doc$mento con Datos de "a Ap"icaci#n

na &e# creado el documento hay que crear una aplicación que permita en&iar los datoshacia el documento mediante pro!ramación, a lo que se le conoce como 2=utomati#ación->:2 o 2=cti&[email protected] llenar un documento de :; 4ord con datos de una &ista desde la aplicacióndebemos reali#ar los si!uientes pasos*1. ?acer una re erencia a la librer"a de tipos de :; 4ord*

• )el menú 2Project2 seleccionar 2=dd Ge erence2.• )el di$lo!o seleccionar la se!unda icha 2->:2.• ;eleccionar 2:icroso t 4ord [. >bject (ibrary2.• -lic en el botón 2;elect2 y lue!o clic en 2> 2.

Nota@Por ser un componente ->: el <isual ;tudio .NET crear$ unas librer"as deinteroperabilidad entre ->: y .NET Interop=9las cuales se crean en el mismo directoriodonde se ejecuta la aplicación.) . -rear un objeto que apunte a la clase App"ication de ord@

)im 4 =s New 4ord.=pplication%'+. =brir el documento creado como plantilla para el in orme mediante el m todo Open de la

colección Doc$mcnts del objeto =pplication*4. )ocuments . >pen %2=rchi&o. doc2'

-. Escribir cada &alor de un campo de la &ista en el campo del documento creado mediantela propiedad Htemde la colección ie"ds del objeto )ocument de la aplicación 4ord*

4.=cti&e)ocument.Fields.8tem%l'.Gesult.Te1t A d!dProducto.8tem%N, '

Nota: En :ord el %ndice de los campos empieza en < ! en .8E( empieza en =.

% Demo 7) .a crear documentos para in ormes en :; 4ord y llenarlos desde unaaplicación 4indows en .NET.

El ejemplo trabaja con un ormulario que al car!ar se conecta a la base de datos Northwindde ; ( ;er&er y llena dos tablas, una de -ate!or"as y otra de Productos. (a tabla de-ate!or"as se enla#a a un -ombo6o1 mostr$ndose el nombre de la cate!or"a y la tabla deProductos sir&e para crear una &ista, la cual se enla#a a un )ataCrid mostr$ndose el códi!o,

Page 44: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 44/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 524 -

nombre, precio y códi!o de la cate!or"a del producto.

=l seleccionar una -ate!or"a del combo, la &ista se iltra mostrando los productos de dichacate!or"a. Finalmente, a] seleccionar un re!istro y dar clic al botón 2-rear )ocumento2 seabrir$ la plantilla de 4ord y se llenar$ con los datos del re!istro actual y se !rabar$ endisco.

Para &er la demostración debemos reali#ar los si!uientes pasos*

1. =brir el :;4ord, del botón 28nicio2, seleccionar 2Pro!ramas2, lue!o 2:icroso t > ice7 S2 y inalmente 2:icroso t 4ord2.

). )el menú 2<er2 seleccionar 26arras de herramientas2 y ele!ir 2Formularios2.+. Empe#ar a crear el si!uiente contenido*

CM! "

In6orme de Prod$cto

-ódi!o *

)escripción *

Precio nitario *

-ate!oria *

=probado Por* *

Nota: Para agregar los campos /cuadros con sombra0 dar clic al primer botón de la barra deformulario-. Crabar el archi&o como 28n orme del Producto.doc2 y salir de 4ord.

:. En el dise3ador de ormularios 4indows, arrastrar un control (abel, un -ombo6o1, un)ataCrid y un 6utton, lue!o con i!urar las propiedades, tal como se muestra en el si!uientecuadro*

Objeto Propiedad /a"or Form5 Te1t -onsulta de Productos 1

-ate!or"a(abel5 Te1t lElija la cate!oria-ombo6o15 =nchor

)rop)own;tyleTop,(e t,Ti!ht)rop)own(ist

)ataCrid5 =nchor Top,6ottom,(e t,Gi!ht6utton5 Name

Te1tbtn-rear)ocumento-rear )ocumento

<. ?acer una re erencia a la librer"a de tipos de :; 4ord.

Page 45: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 45/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 525 -

. En la &entana e1plorador de soluciones dar clic en el botón 2<iew -ode2.B copiar el si!uiente códi!o

8mports ;ystem.)ata.;ql-lientPublic -lass Form5 8nherits ;ystem.4indows.Forms.Form Pri&ate d&w =s )ata<iew Pri&ate ;ub (lenar)atos% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles :y6ase .(oad )im con =s New ;ql-onnection% 2)ata;ourceA.J; (E@PGE;;K=ttach)bFilenameAE*J;87 55J)=T>;Jnorthwnd.md K8nte!rated;ecurityATrueK-onnect TimeoutAL K ser 8nstanceATrue2 ' )im dap =s New ;ql)ata=dapter% 2;elect -ate!ory8),-ate!oryName From-ate!ories2 , con' )im dst =s New )ata;et%' dap.Fill%dst, 2-ate!orias2 ' dap.;elect-ommand.-ommandTe1t A 2;electProduct8),ProductName, nitPrice,-ate!ory8) From Products2 dap.Fill%dst, 2Productos2 ' d&w A dst.Tables% 2Productos2 '.)e ault<iew 4ith -ombo6o15 .)ata;ource A dst.Tables% 2-ate!orias2 ' .)isplay:ember A 2-ate!oryName2 .<alue:ember A 2-ate!ory8)2 End 4ith )ataCrid5.)ata;ource A d&w

Page 46: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 46/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 526 -

End ;ub

Pri&ate ;ub FilltrarProductos% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles -ombo6o15.;elected8nde1-han!ed Try d&w.GowFilter A 2-ate!ory8)A2 -ombo6o15.;elected<alue

-atch e1 =s E1ception End Try End ;ub Pri&ate ;ub -rear)ocumento% 6y<al sender =s ;ystem.>bject, 6y<al e =s ;ystem.E&ent=r!s' ?andles btn-rear)ocumento.-lick )im ruta =s ;trin! A =pplication.;tartupPath 2J8n orme del Producto2 )im N =s 8nte!er A )ataCrid5.-urrentGow8nde1 )im 4 =s New :icroso t.> ice.8nterop.4ord.=pplication ruta A 2e*J)=T>;J8NF>G:E72 4.<isible A True I4.)ocuments.>pen%2E*J)=T>;J8NF>G:E5.)>-2' 4.)ocuments.>pen%ruta 2.doc2' 4ith 4.=cti&e)ocument.Fields .8tem%5'.Gesult.Te1t A )ataCrid5.8tem%N, ' .8tem%7'.Gesult.Te1t A )ataCrid5.8tem%N, 5' .8tem%L'.Gesult.Te1t A )ataCrid5.8tem%N, 7' .8tem%Z'.Gesult.Te1t A )ataCrid5.8tem%N, L' End 4ith 4.=cti&e)ocument.;a&e=s%ruta 2 2 )ataCrid5.8tem%N, 5' 2.doc2 ' End ;ubEnd -lass

Nota: El arc1ivo de :ord "ue sirve de plantilla para el informe lo estamosrecuperando de la ruta donde se encuentra la aplicación mediante la propiedad "tartu#Pat$ del objeto ##lication de .8E(.

1 . Crabar y ejecutar la aplicación pulsando F0

Page 47: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 47/52

Page 48: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 48/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 528 -

+.). !sando &S E ce" para Crear 0r*6icos

+.).1. Entendiendo e" &ode"o de Objetos de &S E ce"

V App"icationEl objeto =pplication de E1cel representa la propia aplicación. Este objeto proporciona

mucha in ormación sobre la aplicación en ejecución, las opciones que se aplican a esainstancia y los objetos de usuario actuales que se abren en cada instancia.

V orGbooG(a clase 4orkbok representa un solo libro dentro de la aplicación E1cel. :uchos de losmiembros de la clase =pplication tambin se muestran como miembros de la clase4orkbook. En este caso, las propiedades se aplican a un libro espec" ico, en &e# deaplicarlas al libro acti&o completo.

J orGs8eet =unque la clase 4orksheet proporciona muchos miembros, la mayor"a de laspropiedades, de los m todos y de los e&entos sor id nticos o similares a los miembrosproporcionados por las clases =pplication o 4orkbook.E1cel proporciona una colección ;heets como propiedad de un objeto 4orkbook, perono e1iste nin!una clase ;heet en E1cel. En su lu!ar, cada miembro de la colección;heets es un objeto 4orksheet o -hart.

J RangeEl objeto Gan!e es el que utili#ar$ con mayor recuencia en las aplicaciones de E1cel.

=ntes de que pueda manipular una re!ión de E1cel, debe e1presarla corno objeto Gan!ey trabajar con los m todos y las propiedades de este objeto. n objeto Gan!erepresenta una celda, una ila, una columna, una selección de celdas que contienenuno o m$s bloques de celdas %que pueden ser conti!uas o no' o incluso un !rupo deceldas de &arias hojas de c$lculo.

En este tema se han descrito bre&emente las clases m$s importantes* =pplication,4orkbook, 4orksheet y Gan!e. ?ay muchas otras clases que podr"an ser útiles, comoPi&otTable y -hart. El modelo de objeto permite que el usuario realice pr$cticamente cualquier tarea automati#ada necesaria.En nuestro caso, para crear !r$ icos de datos usaremos la clase =pplication y lascolecciones 4ork6ooks y -harts, tal como e1plicamos en la si!uiente sección.

+.)9). Creando $n 0r*6Hgo de Datos con &S E ce"

Para crear un !r$ ico en :; E1cel con datos de una &ista desde la aplicación debemos reali#ar los si!uientes pasos*

1. ?acer una re erencia a la librer"a de tipos de :; E1cel*• )el menú IProject2 seleccionar 2=dd Ge erence2.• )el di$lo!o seleccionar la se!unda icha 2->:2.• ;eleccionar 2:icroso t E1cel57 >bject (ibrary2.• -lic en el botón 2;elect2 y lue!o clic en 2> 2.

Page 49: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 49/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 529 -

Demo 7+ crear un !r$ ico de barras en :; E1cel con datos obtenidos desde unaaplicación 4indows en .NET.

El ejemplo trabaja con un ormulario que al car!ar se conecta a la base de datos Northwindde ; ( ;er&er y llena dos tablas, una de -ate!or"as y otra de Productos. (a tabla de-ate!or"as se enla#a a un -ombo6o1 mostr$ndose el nombre de la cate!or"a y la tabla deProductos sir&e para crear una &ista, la cual se enla#a a un )ataCrid mostr$ndose el códi!o,nombre, precio y códi!o de la cate!or"a del producto.

=l seleccionar una -ate!or"a del combo la &ista se iltra mostrando los productos de dichacate!or"a. Finalmente, al seleccionar un re!istro y dar clic al botón 2-rear Cr$ ico2 se abrir$ elE1cel y se en&iar$n los datos de la &ista iltrada por cate!or"a, con los cuales se construir$ un!r$ ico de barras el cual tambi n se !uarda en disco como archi&o !i .

Para &er la demostración debemos reali#ar los si!uientes pasos*

1. En el dise3ador de ormularios 4indows, arrastrar un control (abel, un -ombo6o1, un)ataCrid y un 6utton, lue!o con i!urar las propiedades, tal como se muestra en el si!uientecuadro*

Objeto Propiedad /a"or Form5 Te1t -onsulta de Productos 1 -ate!oria(abel Te1t Eli!e la -ate!oria-ombo6o15 =nchor

)rop)own;tyleTop,(e t,Gi!ht)rop)own(ist

)ataCrid5 =nchor Top, 6ottom, (e t, Gi!ht6utton5 Name

Te1tbtn-rearCra ico-rear Cr$ ico

Page 50: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 50/52

Page 51: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 51/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 531 -

Ne1t @.-olumns.=utoFit%' @.Gan!e% 2=52'.;elect%' )im G =s :icroso t.> ice.8nterop.E1cel.Gan!e A @.;election.-urrentGe!ion @.-harts.=dd%' 4ith @.=cti&e-hart

.-hartType A Z5 .;et;ource)ata%G, 7' .(ocation%5' .E1port%ruta -ombo6o15.Te1t 2.!i 2 , 2!i 2' End 4ith End ;ubEnd -lass

notas:

• 41art(!pe en >?<== indica "ue el tipo de gráfico es de barras en @D.•

$et$ourceDate/6,30 indica "ue el rango a graficar es 6 ! su orientación es encolumnas• ocation/<0 indica "ue el gráfico saldrá en una nueva 1oja• dvertencia: $e generará una e cepción en el m)todo !x#ort si no se 1a instalado

los filtros gráficos para poder crear arc1ivos mediante A$ +ffice al momento de suinst alación.

Z Crabar y Ejecutar la aplicación pulsando F0

Page 52: Reportes

7/21/2019 Reportes

http://slidepdf.com/reader/full/reportes-56d98b901cab6 52/52

TB2015 PARTE 8 REPORTES\ISMAEL VELIZ VILCA - 532 -

0 ;eleccionar una cate!or"a y &er como se iltran los productos de dicha cate!or"a.

;. ;eleccionar un re!istro y clic al botón 2-rear Cr$ ico2 e inmediatamente se abrir$:; E1cel con los datos de la &ista iltrada, con los cuales crear$ el !r$ ico, similaral mostrado en la i!ura*

ig$ra 1 .)7 .<entana del :; E1cel con el !r$ ico creado

7 Ge&isar que en la carpeta 5in se ha creado un archi&o gi6con un !r$ ico de productos dedicha cate!or"a.

< -errar el E1cel y si desea puede !uardar el archi&o.