[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?
[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.
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
[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.
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 :
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();
}