Está en la página 1de 2

Como llamar a un reporte hecho en iReports desde una aplicacion web

Mon, 05/25/2009 - 16:31 drac94 Una vez que hemos creado nuestro re orte en !re orts, "o s!#u!ente es mostrarse"o a" usuar!o o dar"e "a o c!on de #uardar"o, en e" s!#u!ente cod!#o mostrare como hacer"o de tres $ormas: Mostrar"o en e" nave#ador, %& ortar"o a '() * e& ortar"o a &"s 'ara em ezar "o que es comun a todos "os casos:
java.sql.Connection conn = null; //conexion a la BD, en este caso es u n reporte el cual se rellena desde una BD String dirInformes = reportes ;//nom!re de la carpeta donde tienes el informe String reporte"om!re = reporte# ; // nom!re del reporte a ejecutar

+tr!n# re orte,as er - /./re ortes00/ 1./ d!r2n$ormes 1/00/1 re orte3om4re5 re orte,as er - request6#et+ess!on786#et+erv"et9onte&t786#et:ea"'ath7re orte,as er85 //
construimos la ruta del reporte $ap parameters = ne% parameters.put( par# parameters.put( par* ... parameters.put( par" &as'$ap();// parametros , valor# ); , valor* ); , valor" );

Mostrar"o en e" nave#ador


+utputStream oS = null; oS = response.get+utputStream(); // Compilamos el .jrxml , lo cargamos final String jasper"ame = -asperCompile$anager.compile.eport/o0ile(rep orte-asper); final -asper.eport report = (-asper.eport) -.1oader.load+!ject(jasper" ame); // .ellenamos el report pas2ndole al informe la lista de par2metros , el datasource final -asper3rint print = -asper0ill$anager.fill.eport(report, paramet ers, conn); // 4xportamos el informe a &/$1 final -.&tml4xporter exporter = ne% -.&tml4xporter(); exporter.set3arameter(-.4xporter3arameter.-5S34.63.I"/, print); exporter.set3arameter(-.4xporter3arameter.+7/37/6S/.45$, oS); exporter.set3arameter(-.&tml4xporter3arameter.I$584S67.I, image9 image= ); exporter.export.eport();

%& ortar"o a '():

response.setContent/,pe(C+"/4"/6/:34); -asper.eport jasper.eport = null; jasper.eport = -asper$anager.load.eport(ne% 0ileInputStream(reporte-as per)); -asper3rint jasper3rint = null; jasper3rint = -asper$anager.fill.eport(jasper.eport, parameters, conn) ; +utputStream oS = null; oS = response.get+utputStream(); -asper$anager.print.eport/o3dfStream(jasper3rint, oS);

%& ortar"o a &"s:


int !it; 0ile f; InputStream in; Servlet+utputStream out; -asper.eport jasper.eport = null; jasper.eport = -asper$anager.load.eport(ne% 0ileInputStream(reporte-as per)); -asper3rint jasper3rint=-asper0ill$anager.fill.eport (jasper.eport, pa rameters, conn); String xls0ile"ame = reporte.xls ; //Creacion del ;1S -.;ls4xporter exporter = ne% -.;ls4xporter (); exporter.set3arameter (-.4xporter3arameter.-5S34.63.I"/, jasper3rint); exporter.set3arameter (-.4xporter3arameter.+7/37/60I146"5$4, xls0ile"a me); exporter.set3arameter (-.;ls4xporter3arameter.IS6+"463584634.6S&44/, B oolean./.74); exporter.export.eport (); // 4n este punto ,a esta Creado el ;1S // 5'ora leemos el fic'ero , for<amos al navegador a que nos descargue el fic'ero. f = ne% 0ile ( xls0ile"ame); response.setContent/,pe ( application/vnd.ms=excel ); ///ipo de fic'er o. response.set&eader ( Content=Disposition , attac'ment;filename=> ? xls0ile"ame ? > ); //Configurar ca!ecera 'ttp in = ne% 0ileInputStream (f); out = response.get+utputStream (); !it = *@A; %'ile ((!it)B= C) D !it = in.read (); out.%rite (!it); E out.flus' (); out.close (); in.close ();

También podría gustarte