tutoriales de programacion java_ creación de reportes con jasperrepots y ireports - parte 6_ grupos

5
Blog dedicado a temas de programación actuales usando el lenguaje de programación Java y las últimas versiones de sus APIs y Herram Tutoriales de Programacion Java Página principal Página de Concursos Tutoriales UPAO 2010 Presentaciones Capacitación VIERNES, 17 DE ABRIL DE 2009 Creación de Reportes con JasperRepots y iReports Parte 6: Grupos Visita la parte 1 de este tutorial: Reportes con Conexión a Bases de Datos Visita la parte 2 de este tutorial: Usando DataSources Personalizados Visita la parte 3 de este tutorial: Parámetros y Variables Visita la parte 4 de este tutorial: Reportes en aplicaciones web Visita la parte 5 de este tutorial: Gráficas en Reportes Visita la parte 7 de este tutorial: Subreportes En el tutorial anterior vimos como usar grupos para generar la gráfica de los datos de un reporte. Es esa ocasión los grupos fueron un elemento secundario que usamos para auxiliarnos en la generación de dicha gráfica. Ahora veremos cómo deben ser usados los grupos para, bueno, agrupar un conjunto de datos relacionados y mostrar estos grupos de forma clara en el reporte. Usaremos la misma idea del tutorial anterior, en la que se mostraron las ventas de las consolas de última generación (Wii, XBox 360, y PS3). Solo que en este caso mostraremos por cada consola el nombre de los jugadores que las han comprado, separados claramente de los que han comprado las otras consolas. Para comenzar creamos un nuevo proyecto en NetBeans (File > New Project... > Java > Java Application). Damos un nombre y una ubicación a nuestro proyecto y presionamos el botón "Finish" para que la clase Main aparezca en nuestro editor. Recuerden agregar al nodo "Libraries" del panel "Projects" la biblioteca "JasperReports" que creamos en la primer parte del tutorial y el jar "commonslogging1.1.1.jar". Usaremos la misma clase "Jugador" en en el tutorial anterior para mantener los datos que serán mostrados en el reporte. La clase quedó de la siguiente forma: public class Jugador { private int id; private String nombre; private String consola; public Jugador(int id, String nombre, String consola) { this.id = id; this.nombre = nombre; this.consola = consola; } public String getConsola() { return consola; } public void setConsola(String consola) { this.consola = consola; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNombre() DONACIONES JAVA TUTORIALES EN FACEBO Java Tutoriales A 24 386 personas les gusta Jav Plugin social de Facebook Me gusta Java Tutoriales añadido una foto 16 Me gusta · Se ha compartid Me gusta Comentar 13 de marzo 3 Más Siguiente blog»

Upload: ben-avraham

Post on 27-Sep-2015

217 views

Category:

Documents


4 download

DESCRIPTION

tip

TRANSCRIPT

  • 14/4/2015 TutorialesdeProgramacionJava:CreacindeReportesconJasperRepotsyiReportsParte6:Grupos

    http://www.javatutoriales.com/2009/04/creaciondereportesconjasperrepotsy_17.html 1/10

    BlogdedicadoatemasdeprogramacinactualesusandoellenguajedeprogramacinJavaylasltimasversionesdesusAPIsyHerramientas.

    TutorialesdeProgramacionJava

    Pginaprincipal PginadeConcursos TutorialesUPAO2010 PresentacionesCapacitacin

    VIERNES,17DEABRILDE2009

    CreacindeReportesconJasperRepotsyiReportsParte6:GruposVisitalaparte1deestetutorial:ReportesconConexinaBasesdeDatosVisitalaparte2deestetutorial:UsandoDataSourcesPersonalizadosVisitalaparte3deestetutorial:ParmetrosyVariablesVisitalaparte4deestetutorial:ReportesenaplicacioneswebVisitalaparte5deestetutorial:GrficasenReportesVisitalaparte7deestetutorial:Subreportes

    Enel tutorialanteriorvimoscomousargruposparagenerar lagrficade losdatosdeunreporte.Esesaocasin losgrupos fueronunelementosecundarioqueusamosparaauxiliarnosenlageneracindedichagrfica.

    Ahoraveremoscmodebenserusados losgrupospara,bueno,agruparunconjuntodedatos relacionadosymostrarestosgruposdeforma clara en el reporte.Usaremos lamisma idea del tutorialanterior, en la que semostraron las ventas de las consolas de ltimageneracin (Wii, XBox 360, y PS3). Solo que en este casomostraremos por cada consola el nombre de los jugadores que las hancomprado,separadosclaramentedelosquehancompradolasotrasconsolas.

    ParacomenzarcreamosunnuevoproyectoenNetBeans(File>NewProject...>Java>JavaApplication).Damosunnombreyunaubicacinanuestroproyectoypresionamoselbotn"Finish"paraquelaclaseMainaparezcaennuestroeditor.

    Recuerdenagregar al nodo "Libraries" del panel "Projects" la biblioteca "JasperReports" que creamos en la primer parte deltutorialyeljar"commonslogging1.1.1.jar".

    Usaremos lamismaclase "Jugador" enenel tutorialanterior paramantener los datos que sernmostrados en el reporte. La clasequeddelasiguienteforma:

    publicclassJugador{privateintidprivateStringnombreprivateStringconsola

    publicJugador(intid,Stringnombre,Stringconsola){this.id=idthis.nombre=nombrethis.consola=consola}

    publicStringgetConsola(){returnconsola}

    publicvoidsetConsola(Stringconsola){this.consola=consola}

    publicintgetId(){returnid}

    publicvoidsetId(intid){this.id=id}publicStringgetNombre()

    DONACIONES

    JAVATUTORIALESENFACEBOOK

    JavaTutoriales

    A24386personaslesgustaJavaTutoriales

    PluginsocialdeFacebook

    Megusta

    JavaTutorialeshaaadidounafotonueva.

    16MegustaSehacompartido1vez

    Megusta Comentar

    13demarzo

    3 Ms Siguienteblog

    http://www.javatutoriales.com/p/presentaciones-capacitacion.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_18.htmlhttp://commons.apache.org/downloads/download_logging.cgihttp://www.javatutoriales.com/p/concursos.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y.htmlhttp://www.javatutoriales.com/http://www.javatutoriales.com/http://www.javatutoriales.com/p/tutoriales-upao-2010.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_13.htmlhttp://javatutoriales.blogspot.com/2009/03/creacion-de-reportes-con-jasperrepots-y.htmlhttp://javatutoriales.blogspot.com/2009/02/creacion-de-reportes-con-jasperrepots-y.htmlhttp://javatutoriales.blogspot.com/2009/03/creacion-de-reportes-con-jasperrepots-y_30.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_13.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_13.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_13.html
  • 14/4/2015 TutorialesdeProgramacionJava:CreacindeReportesconJasperRepotsyiReportsParte6:Grupos

    http://www.javatutoriales.com/2009/04/creaciondereportesconjasperrepotsy_17.html 2/10

    {returnnombre}

    publicvoidsetNombre(Stringnombre){this.nombre=nombre}}

    El cdigo que colocaremos en la clase Main es el mismo que en el tutorial anterior. Solo que en este caso en vez de tener 100jugadores,modificaremoslosciclosforparatenersolo10.Porlotantoquedandelasiguienteforma:

    for(inti=1i

  • 14/4/2015 TutorialesdeProgramacionJava:CreacindeReportesconJasperRepotsyiReportsParte6:Grupos

    http://www.javatutoriales.com/2009/04/creaciondereportesconjasperrepotsy_17.html 3/10

    Presionamoselbotn"Siguiente>".Enlapantallasiguientedejamosseleccionadaslasdosopciones("Addthegroupheader"y"Addthegroupfooter"). Presionamos en botn "Finalizar" con lo que veremos que en la plantilla de nuestro reporte hanaparecido dos nuevas bandas, "CONSOLAS Group Header" y "CONSOLAS Group Footer", adems de una nueva variable,CONSOLAS_COUNT:

    Agregaruncuadronegro("Rectangle"de lapaletadeelementosdel reporte)en labanda"CONSOLASGroupHeader" parapoderdistinguirloenelmomentodegenerarelreportefinal.Ademsarrastraraestabandaelfield$F{consola}quecreamosanteriormente.Alarrastrareste fieldsenospreguntarques loquequeremosmostrar:elvalordelcampo("Thefieldvalue")oel resultadodeunafuncindeagregacin("Theresultofanaggregationfuction").Como loquequeremosmostrareselvalordelcampodejamosseleccionadalaprimeraopcin(siqueremosmostrarelnmerodeloselementosdelgrupopodemosvolveraarrastrarestefieldalabanda).

    Si,al igualqueyo,agregaronelcuadronegroen labanda,serneccesarioquecambienelcolorde la letradelcampo(Forecolor)ablancoparapoderverlo.

    Elreportefinaldebeversemsomenosas:

    Ahoracambiamosa lapestaa"Preview"paraquesecompilenuestro reporteygenere,enelmismodirectorioenelquecolocamosnuestroarchivo"reporteGrupo.jrxml",elarchivo"reporteGrupo.jasper".

    AhoraregresamosalNetBeansyejecutamosnuestraaplicacin.EstogenerarunarchivoPDFenelmismodirectorioquelosarchivos

    enero(3)

    Androidlatencyhigh?LowlatencyAndroidaudio.Easy.Stable.Justworks.

    Alex

    Programador Java con algunos aos deexperiencia en mltiples poyectos y conmltiples APIs y herramientas deseoso decompartir experiencias con el resto deprogramadores.

    Vertodomiperfil

    DATOSPERSONALES

    http://www.blogger.com/profile/06974037481671868076http://4.bp.blogspot.com/_93xZudn-1kc/SepPiUfO4lI/AAAAAAAAARc/4rkVr7u3irI/s1600-h/JR6_4.pnghttp://www.javatutoriales.com/2009_01_01_archive.htmlhttp://2.bp.blogspot.com/_93xZudn-1kc/SepRVGSRiEI/AAAAAAAAARk/7EtU7SSevC4/s1600-h/JR6_5.pnghttp://3.bp.blogspot.com/_93xZudn-1kc/SepNJOQ-vAI/AAAAAAAAARU/jkNcLm73Gec/s1600-h/JR6_3.pngjavascript:void(0)http://2.bp.blogspot.com/_93xZudn-1kc/SepVMFC98dI/AAAAAAAAAR0/oiGUXuz-Oa0/s1600-h/JR6_6.pnghttp://www.blogger.com/profile/06974037481671868076
  • 14/4/2015 TutorialesdeProgramacionJava:CreacindeReportesconJasperRepotsyiReportsParte6:Grupos

    http://www.javatutoriales.com/2009/04/creaciondereportesconjasperrepotsy_17.html 4/10

    .jrxmly.jasper.Elcontenidodelreporteelsiguiente:

    Comopodemosver,lostresgrupos(unoporcadaconsola)semuestrandeformaindependienteunodeotro.Ademsencadagruposelistansololosjugadoresquetienenlaconsoladelgrupo.

    ElcdigofinaldelaclaseMaineselsiguiente:

    publicclassMain{publicstaticvoidmain(String[]args)throwsException{ListlistaJugadores=newArrayList()for(inti=1i

  • 14/4/2015 TutorialesdeProgramacionJava:CreacindeReportesconJasperRepotsyiReportsParte6:Grupos

    http://www.javatutoriales.com/2009/04/creaciondereportesconjasperrepotsy_17.html 5/10

    PublicadoporAlexen19:49

    Reacciones: divertido (2) interesante (2) increible (2) no me gusta (2)

    Etiquetas:grupos,ireports,jasperreports,java,reportes

    Visitalaparte1deestetutorial:ReportesconConexinaBasesdeDatosVisitalaparte2deestetutorial:UsandoDataSourcesPersonalizadosVisitalaparte3deestetutorial:ParmetrosyVariablesVisitalaparte4deestetutorial:ReportesenaplicacioneswebVisitalaparte5deestetutorial:GrficasenReportesVisitalaparte7deestetutorial:Subreportes

    +3 Recomendar esto en Google

    41comentarios:

    Ro 25dejuniode2009,23:46

    Imaginaquetengoenelinformeunaespeciedetablaconlassiguientescolumnas:aplicacin,puntuacionyempresa,(dondelaempresaes la que hizo la aplicacin y puntuacin es la puntuacin que tiene esa aplicacin).Yo quieromostrar la puntuacin promedio porempresa,seriacrearungrupoporempresas,yluegosumarlaspuntuacionesparacadaunadelasempresas.Cmopuedoindicarenunavariablequehagalasumadelacolumnapuntuacinperopertenecienteacadaempresa?

    Responder

    Alex 27dejuniode2009,7:38

    Hola,efectivamente,tendrasquecrearungrupoporcadaempresa.

    Paraindicarlavariabledelaquehablasbastacondefinirlaenelpanel"Reportinspector"enlaseccindevariablesycolocarladentrodelabandadelgrupoqueacabasdecrear,colocandoensuspropiedadesqueseaunasumadetucolumnapuntuacin.Conestolograrasqueesavariabletengalasumadelapuntuacindecadaempresa.

    Saludos

    Responder

    Ro 29dejuniode2009,23:15

    Estodelosgruposestpudiendoconmigo.Averestoytratandodehacerprimeroalgomssencillo,comoesungraficopie.Tengoenelinformelasiguienteinformacin(querecuperodesdeunjavaconJasperFillManager.fillReport):Aplicacion,criticidadyempresa,tengolostres fielddefinidos,enel informequegenreromuestroelvalordeesos trescamposyquieromostrarungrfico tipopieconel%deaplicaciones en funcion de la criticidad (hay criticas, altas, medias y bajas) me he generado un grupo para el campo criticidad(grupocriticidad)ytengolavariablegrupocriticidad_COUNTquesegeneraconelgrupo.Losdatosquepongoenelchartson:enkeyexpresionelcampocriticidad($F{criticidad})yenelvalorelvalordelavariablegrupocriticidad_COUNT($V{grupocriticidad_COUNT}),tengodedatos6aplicaciones,2criticas,2medias,1altay1baja,yenelgrficosiempremesalen4porcionescadaunaconun25%(indicandoqueslohayunadecada).Podrasdecirmequeestoyhacuendomal?

    Graciasxanticipado.Annoheprobadolodelcomentarioanterior,xqnoeconseguidoquemefuncioneesto.Yatecomentoalgo

    Responder

    Ro 29dejuniode2009,23:32

    Pareceserquesilosordenoporelgrupo(pongotodaslascriticasjuntas,todaslasaltas,etc.),simepintaelgrficobien.Esobligatoriotenerlosregistrosordenadosporelgrupoparaquelospintebien?

    Responder

    Alex 30dejuniode2009,6:45

    HolaRo

    Efectivamente,losregistrosdebenestarordenadosporelatributoqueteinteresegraficar(queentucasomeparecequeescriticidad)paraqueelgrficolomuestredemaneracorrecta.

    Saludos

    Responder

    Ro 1dejuliode2009,3:55

    Averporquemesurgeotraduda,yotengoenel informemostrado loscamposaplicacion,criticidad,puntuacin,yempresa.Yquierosacardosgrficosdistintos,porunladoeltipopieenelquehablenelcomentarioanterior,locualyaheconseguidoordenandolosdatosporelcampocriticidad.Peroahoraquierootragrfica,debarrasenelqueenelejedelasxseencuentrenlasempresasyenelejedelasylapuntuacinpromedioporempresa,paraellonecesitogenerarotrogrupo(empresa),yunavariablequesumelaspuntuacionesasociadasacadaempresaydividaporelnumerodeaplicacionesdelaempresa,peroclarolosdatosdelaempresanoestnordenadosporempresa(yaqueloshabaordenadoporcriticidad),comoarregloeso?

    Responder

    Ro 1dejuliode2009,7:37

    Alfinalloheresueltousandosubinformes,nosesieslaopcinmsptima,perofunciona.Unacosillams,cmopuedopersonalizar

    http://www.blogger.com/share-post.g?blogID=2012232069289957092&postID=6464614600349398707&target=pinteresthttp://www.blogger.com/profile/06974037481671868076http://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1245998817628#c3587006642305216163http://www.blogger.com/profile/12427990990093436129javascript:;http://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246369521391#c2104210994170547645http://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246113506532#c4424106859290276075http://www.javatutoriales.com/search/label/jasperreportshttp://www.javatutoriales.com/search/label/ireportshttp://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246342516572#c6715130389326421605javascript:;javascript:;http://javatutoriales.blogspot.com/2009/03/creacion-de-reportes-con-jasperrepots-y_30.htmlhttp://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_13.htmlhttp://www.javatutoriales.com/search/label/reporteshttp://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.htmljavascript:;http://www.blogger.com/profile/12427990990093436129http://www.blogger.com/share-post.g?blogID=2012232069289957092&postID=6464614600349398707&target=twitterhttp://www.javatutoriales.com/search/label/gruposhttp://www.blogger.com/share-post.g?blogID=2012232069289957092&postID=6464614600349398707&target=facebookhttp://javatutoriales.blogspot.com/2009/03/creacion-de-reportes-con-jasperrepots-y.htmlhttp://www.blogger.com/share-post.g?blogID=2012232069289957092&postID=6464614600349398707&target=emailhttp://www.blogger.com/profile/12427990990093436129http://javatutoriales.blogspot.com/2009/02/creacion-de-reportes-con-jasperrepots-y.htmlhttp://www.javatutoriales.com/search/label/javahttp://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246343558229#c9218589094221788332http://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246459029033#c6266822086983094529http://www.blogger.com/profile/06974037481671868076javascript:;http://www.javatutoriales.com/2009/04/creacion-de-reportes-con-jasperrepots-y_17.html?showComment=1246445707887#c96329776068485488http://www.blogger.com/share-post.g?blogID=2012232069289957092&postID=6464614600349398707&target=bloghttp://www.blogger.com/profile/12427990990093436129javascript:;http://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y.htmlhttp://www.blogger.com/profile/12427990990093436129http://javatutoriales.blogspot.com/2009/04/creacion-de-reportes-con-jasperrepots-y_18.html