Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/07/2011, 06:25
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: problemas con fechas en parametros en jasperreport

Hola, ya lo tengo resuelto. El problema era que jasperreport me cogía la fecha con formato MM/dd/yyyy, y yo se lo pasaba de otra manera. Así que en la consulta he cambiado los:

a.scheduledTime between $P{fechaInformeDesde} and $P{fechaInformeHasta}

por

a. scheduledTime >= $P{fechaInformeDesde} and a. scheduledTime < $P{fechaInformeHasta}

y

b. scheduledTime >= $P{fechaInformeDesde} and b. scheduledTime < $P{fechaInformeHasta}

, y en el servlet, he hecho lo siguiente para conseguir el formato adecuado:

Código:
//obtengo el dia, mes y año introducidos
				String arrayFecha[] = reportDateString.split("/");	
				String dia = arrayFecha[0];
				String mes = arrayFecha[1];
				String anno = arrayFecha[2];
				//fecha desde la que se hace la consulta
				String fechaStringDesde = mes + "/" + dia + "/" + anno;
				//fecha hasta la que se hace la consulta
				String fechaStringHasta = "";
				GregorianCalendar calendario = new GregorianCalendar (Integer.parseInt(anno), Integer.parseInt(mes), 1);
				//obtengo el numero maximo de dias del mes
				int numDays = calendario.getActualMaximum(Calendar.DAY_OF_MONTH);
				//si es el ultimo dia del mes 12
				if (mes.equals(12) && dia.equals(String.valueOf(numDays)))
				{
					anno = String.valueOf(Integer.parseInt(anno) + 1);
					mes = "01";
					dia = "01";
				}
				//si es cualquier otro mes
				if (!mes.equals("12"))
				{
					//si es el ultimo dia del mes
					if (dia.equals(String.valueOf(numDays)))
					{
						mes = String.valueOf(Integer.parseInt(mes) + 1);
						dia = "01";
					}
					//si es cualquier otro dia
					else
					{
						dia = String.valueOf(Integer.parseInt(dia) + 1);
					}
				}
				fechaStringHasta = mes + "/" + dia + "/" + anno;
				Date fechaInformeDesde = formato.parse(fechaStringDesde);			
				Date fechaInformeHasta = formato.parse(fechaStringHasta);
				
				parameters.put("fechaInformeDesde", fechaInformeDesde);
				parameters.put("fechaInformeHasta", fechaInformeHasta);
Espero que todo esto le ayude a alguien, a mí me ha dado unos cuantos quebraderos de cabeza.

Un saludo y gracias por todo