Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/03/2009, 15:56
Avatar de ratwhite
ratwhite
 
Fecha de Ingreso: febrero-2009
Ubicación: Lima
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Variables en la consulta ireport

segun he leido por hay si se puede, pero xq mejor no realizas la consulta aparte y luego solo pintas los $F{}, en vez de q el ireport realize la consulta.
algo asi:
Asi podrias hacer tu consulta
Código:
public List RptPend(MenRecepForm alter) throws SQLException {
		Conexion cn = new Conexion("DISENO");
		List lista = new ArrayList();
		cn.setCStQuery("Recep_RptPend");
		while (cn.getNext()) {
			Map m = new HashMap();
			m.put("CODLOC",cn.getCol(1));
			m.put("TIPAP",cn.getCol(2));
			m.put("SECT",cn.getCol(3));
			m.put("CANF",Integer.parseInt(cn.getCol(4)));
			m.put("EST",cn.getCol(5));
			lista.add(m);
		}
		cn.Close(1, 1, 1);
		return lista;
	}
y Asi generar tu reporte
Código:
List recDet = new ArrayList();
		recDet=mrb.RptPrioPendiente(alter);
			if (recDet.size() > 0) {
				try {
					Map parameters = new HashMap();
					parameters.put("usuario", nomUsu);
					parameters.put("TOTALFORM", String.valueOf(alter.getCant_form()));					
					parameters.put("COUNTL", String.valueOf(alter.getCant_lote()));	
					
					JasperPrint jasperPrint = null;
					ServletContext context = this.getServlet().getServletContext();
					
					JasperDesign jasperDesign = JRXmlLoader.load(context.getRealPath("/vista/recepcion/Report/RptPend.jrxml"));
					JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
	
					jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,new JRBeanCollectionDataSource(recDet));
	
					JasperExportManager.exportReportToPdfFile(jasperPrint,context.getRealPath("/vista/recepcion/Report/RptPend.pdf"));
					JasperExportManager.exportReportToHtmlFile(jasperPrint,	context.getRealPath("/vista/recepcion/Report/RptPend.html"));
					
					// exportar a excel
					if (exp == 1) {

						JRXlsExporter exporterXls = new JRXlsExporter();
						
						String xlsFileName = "RptPend.xls";
						exporterXls.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
						exporterXls.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,xlsFileName);

						exporterXls.exportReport();

						File f = new File(xlsFileName);
						InputStream in;
						ServletOutputStream out;
						int bit;

						response.setContentType("application/vnd.ms-excel"); // Tipo de fichero.
						response.setHeader("Content-Disposition","attachment;filename=\""+ xlsFileName + "\""); // Configurar cabecera http
						in = new FileInputStream(f);
						out = response.getOutputStream();
						bit = 256;
						while ((bit) >= 0) {
							bit = in.read();
							out.write(bit);
						}
						out.flush();
						out.close();
						in.close();
						
					}
				}catch (JRException e) {
					e.printStackTrace();
					return mapping.findForward("PendientImg");
				}
Con esto el ireport no tendria q hacer la consulta.
Espero te sirva
Saludos