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 reorte en !reorts, "o s!#u!ente es mostrarse"o a"
usuar!o o dar"e "a oc!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 emezar "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# reorte,aser - /./reortes00/ 1./ d!r2n$ormes 1/00/1 reorte3om4re5
reorte,aser - request6#et+ess!on786#et+erv"et9onte&t786#et:ea"'ath7reorte,aser85 //
construimos la ruta del reporte
$ap parameters = ne% &as'$ap();// parametros
parameters.put(par#, valor#);
parameters.put(par*, valor*);
...
parameters.put(par", 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