Foros del Web » Programación para mayores de 30 ;) » Java »

Variables en la consulta ireport

Estas en el tema de Variables en la consulta ireport en el foro de Java en Foros del Web. Hola de nuevo ; Tengo un par de preguntas aver si me pueden ayudar. (La aplicacion es en jsp-mysql) Estoy haciendo reportes con ireport bueno ...
  #1 (permalink)  
Antiguo 23/03/2009, 10:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 38
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Variables en la consulta ireport

Hola de nuevo ;
Tengo un par de preguntas aver si me pueden ayudar. (La aplicacion es en jsp-mysql)
Estoy haciendo reportes con ireport bueno puedo poner varibable como usuario que se logueo no hay problema en eso.
esto es lo que se usa para las variables hasta donde se:

Map parameters = new HashMap();
parameters.put("Parametro1", "valor");
parameters.put("usuario", session.getAttribute("codigo"));

Con esto muestra el nombre del usuario en el reporte mediante un parametro
$P{usuario}. Hasta esta parte no hay problema.

Mi consulta es la siguiente, asi como pude meter el parametro para que me salga el usuario en el reporte, habria la posibilidad de meter otro parametro en la misma consulta que se hace en el ireport?

Es decir en la aplicacion pongo
parameters.put("xcodconsulta", 50);

y en el ireport a la hora de hacer la consulta por decir (select * from tabla where cod='50';) quiero introducir el valor 50 en la consulta del ireport para crear el reporte se puede?

Expero haberme explicado bien (ummm)

Saludos y cualkier idea me sera de gran ayuda sl2
  #2 (permalink)  
Antiguo 23/03/2009, 15:56
Avatar de 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
  #3 (permalink)  
Antiguo 23/03/2009, 17:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 38
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Variables en la consulta ireport

jeje probando los codigos gracias por responder ^^
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:19.