Duvida como inicializar um campo Date no iReport

Olá,

estou com duvida como inicializar um campo Date de parametro no iReport

pois queria colocar a data e horário …como poderia fazer isso alguém já passou por isso

abs

   Date dia =new Date();
		   Calendar cal = Calendar.getInstance();
		   cal.set(Calendar.YEAR, 1900);
		   cal.set(Calendar.MONTH, 01);
		   cal.set(Calendar.DAY_OF_MONTH, 01);
		   cal.set(Calendar.HOUR, 00);
		   cal.set(Calendar.MINUTE, 00);
		   cal.set(Calendar.SECOND, 00);
		   dia = cal.getTime();

help;;;help;;;help

[quote=paribe]
Olá,
estou com duvida como inicializar um campo Date de parametro no iReport
pois queria colocar a data e horário …como poderia fazer isso alguém já passou por isso

abs

[code]
Date dia =new Date();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1900);
cal.set(Calendar.MONTH, 01);
cal.set(Calendar.DAY_OF_MONTH, 01);
cal.set(Calendar.HOUR, 00);
cal.set(Calendar.MINUTE, 00);
cal.set(Calendar.SECOND, 00);
dia = cal.getTime();

[/code][/quote]

Não sei se entendi bem o que você deseja, mas assim não te serve não?

[]'s
JL

no campo de parametro com tipo Date em Valor padrão da Expressão escrevi o que está abaixo

mas não aparece essa data no campo de parametro ??? porque o que estou fazendo de errado???


new SimpleDateFormat("dd/MM/yyyy").parse("25/01/1968 12:25:00") 

[quote=paribe]no campo de parametro com tipo Date em Valor padrão da Expressão escrevi o que está abaixo
mas não aparece essa data no campo de parametro ??? porque o que estou fazendo de errado???

new SimpleDateFormat("dd/MM/yyyy").parse("25/01/1968 12:25:00") [/quote]

Vamos aos passos para saber o que está de errado.
Primeiro em Valor padrão da Expressão deixe como esta:

new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("25/01/1968 12:25:00") 

No Field onde vai ser exibido o valor, verifique se o tipo do Field é de java.util.Date, e também se o Modelo Padrão está igual ao do construtor do SimpleDateFormat:

Só pra tirar a dúvida, veja se o tamanho do campo é suficiente para exibir o valor.

[]'s
JL

o que estou fazendo passo a passo (iReport 3.0.0):

  • Visualizar
    • Parametros do Relatorio
      • campo data_inicial click modificar
        • nome parametro : data_inicial
          tipo de classe de Parametro :java.util.Date
          Usar Como uma sugestão : está setado
          Valor Padrão Expressão : new SimpleDateFormat(“dd/MM/yyyy”).parse(“25/01/1968 12:25:00”)
          Descrição do Parametro : Informe a Data :

Depois clico o botão : Executar o relatório (conexão ativa)

mostra o campo data_inicial somente com a data 04/05/2009 (de hoje) e sem hora minuto e segundo

Essa é minha duvida???

abs

[quote=paribe]o que estou fazendo passo a passo (iReport 3.0.0):

  • Visualizar
    • Parametros do Relatorio
      • campo data_inicial click modificar
        • nome parametro : data_inicial
          tipo de classe de Parametro :java.util.Date
          Usar Como uma sugestão : está setado
          Valor Padrão Expressão : new SimpleDateFormat(“dd/MM/yyyy”).parse(“25/01/1968 12:25:00”)
          [/quote]

Altere para new SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”).parse(“25/01/1968 12:25:00”)

Não esquece de no Field onde vai ser exibido o valor também colocar dd/MM/yyyy HH:mm:ss.

[]'s
JL

obrigado pelo retorno mas não mostra a data formata pelo SimpleDateFormat

mostrei no relatório a data conforme abaixo não vai o horário .minuto e segundo …

muito estranho

quando roda o relatório e pede pra digitar o valor para data_inicial


Você pode estipular um valor para o parametro

data_inicial
04/05/2009          e tem um botão pra escolher outras datas mostra um calendário

O tipo da classe é: java.util.Date

Informe a Data :

25/01/1968 00.00.00 

31/12/2099 00.00.00

resumindo o que fiz pra funcionar …

no iReport não consigo colocar hora.minuto e segundo e o que fiz:

  • na data inicial coloquei um dia - 1

  • na data final coloquei um dia + 1

no action java

passando de String que vem jsp para Date parametro do jasper rodo dois metodos que
peguei aqui no forum …

dessa forma funcionou o SQL …se alguém cair nessa situação …

abs

public static Date convertStringToDate(String date,String operator) throws BaseException {
		Date out = null;
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");  
		
		try {
			Date dataTODate = dateFormat.parse(date);
			
			if (operator.equals("=")||operator.equals(">")||operator.equals(">=")||operator.equals("!")){
				out = DateUtils.lowDateTime(dataTODate);	
			}else{
				out = DateUtils.highDateTime(dataTODate);
			}
 
		} catch(Exception e) {
			//throw new BaseException(e, "CriteriaSearchDetail", "convertStringToCalendar", "1");
		}
		return out;
	}
--
 public static Date lowDateTime(Date date) {  
	           Calendar aux = Calendar.getInstance();  
	           aux.setTime(date);  
	           toOnlyDate(aux); //zera os parametros de hour,min,sec,milisec  
	           return aux.getTime();  
	       }  

---
  public static Date highDateTime(Date date) {  
	           Calendar aux = Calendar.getInstance();  
	           aux.setTime(date);  
	           toOnlyDate(aux); //zera os parametros de hour,min,sec,milisec  
	           aux.roll(Calendar.DATE, true); //vai para o dia seguinte  
	           aux.roll(Calendar.MILLISECOND, false); //reduz 1 milisegundo  
	           return aux.getTime();  
	       }  

ficou faltando


  public static void toOnlyDate(Calendar date) {  
	           date.set(Calendar.HOUR_OF_DAY, 0);  
	           date.set(Calendar.MINUTE, 0);  
	           date.set(Calendar.SECOND, 0);  
	           date.set(Calendar.MILLISECOND, 0);  
	       }