Bom pessoal estou trabalhando com o ireport passando parametros para o relatorio porem aparece o seguinte erro.
WARN [main] (JRJdbcQueryExecuter.java:96) - The supplied java.sql.Connection ob
ject is null.
Bom pessoal estou trabalhando com o ireport passando parametros para o relatorio porem aparece o seguinte erro.
WARN [main] (JRJdbcQueryExecuter.java:96) - The supplied java.sql.Connection ob
ject is null.
Provavelmente tais passando objeto null para o relatório…
Acredito que seu resultSet não esteja retornando nada…
e por isto nao esta preenchendo seu objeto.
Daew The Kill
Cara seguinte o meu Resultset está dentro do ireport e quando o visualiza ele aparece os registros penso eu que o problema pode ser o seguinte:
Segue código
JasperPrint jp = JasperFillManager.fillReport("RelatorioDiario.jasper", parameters);// aqui estão o meu jasper, e também os parametros.Tenho que colocar a minha conexão também?
Valeu pela atenção mesmo.
acho que não… nao sei.
eu nao deixo nada de Query no relatório.
Faço tudo na aplicação, deixo apenas a função
de mostrar as informações do Relatório para iReport
Depois você passa como uma lista?
passa da forma como eu achar mais fácil…
SQL, Collection, Parametro…
Segue o código e como estou pensando em fazer
.
EventSensor []es;
teste = false;
String dtx = (new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new java.util.Date(System.currentTimeMillis())));
Date dt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(dtx);
dt.setHours(00);
dt.setMinutes(00);
dt.setSeconds(00);
Map parameters = new HashMap();
es = EventSensorDaoFactory.create().findByAddressBetweeenDates1(dt,time);//minha consulta que retornaria varios valores.
//Porem como vou passar os resultado por parametros. Pois retornara varios campos diferentes.
//parameters.put("campo",parametro);//como passaria esses parametros.
System.out.println("es "+ es.length);
JasperPrint jp = JasperFillManager.fillReport("RelatorioDiario.jasper",parameters);
JasperViewer.viewReport(jp, false);
obrigado pela atenção.
pelo que parece ali, ele nao tem conexao no seu Query do relatorio. Tente mandar a Conn no JasperPrint
Ta vou tentar assim mas se eu quizesse mandar os resultados eu passaria como uma lista?
Valeu
como vc achar melhor.
seja sql, collection, parametor
Segue o código de como estou fazendo
Map parameters = new HashMap();
es = EventSensorDaoFactory.create().findByAddressBetweeenDates1(dt,time);
System.out.println("es = " +es.length);
int[] a = new int [es.length];
Date [] b = new Date [es.length];
String [] c = new String [es.length];
Long[] d = new Long [es.length];
for (int i=0;i<es.length;i++){
System.out.println("Dados - " + es[i].getDateinc() + " - " +es[i].getPulse() + "- " +
es[i].getDescription() + " - "+es[i].getIdEvent());
a[i]= es[i].getPulse();
b[i]=es[i].getDateinc();
c[i]=es[i].getDescription();
d[i]=es[i].getIdEvent();
}
parameters.put("date",b);
parameters.put("pulse",a);
parameters.put("desc",c);
parameters.put("event",d);
JasperPrint jp = JasperFillManager.fillReport("RelatorioDiario.jasper",parameters);
JasperViewer.viewReport(jp, false);
Pode ser assim ou fica uma tremenda “gambiarra”?
Valeu
O problema era com o Connection mesmo Valeu.
EventSensor[] es;
teste = false;
JasperPrint jp = null;
Date dt = new Date(System.currentTimeMillis());
Date dt1 =new Date(System.currentTimeMillis());
dt.setHours(23);
dt.setMinutes(59);
dt.setSeconds(59);
dt.setDate(dt1.getDate()-1);
//dt1.setDate(dt1.getDate()+1);
Map parameters = new HashMap();
Timestamp dtNoite = new Timestamp(dt.getTime());
Timestamp dtDia = new Timestamp(dt1.getTime());
parameters.put("date", dtNoite);
parameters.put("date2", dtDia);
System.out.println("date = " + dtNoite);
System.out.println ("date2 = " + dtDia);
jp = JasperFillManager.fillReport("RelatorioDiario.jasper", parameters,ResourceManager.getConnection());
JasperViewer.viewReport(jp, false);