Download - Reportes

Transcript
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.