Erro ireport[resolvido]

11 respostas
fabricioempresa

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.

11 Respostas

TheKill

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.

fabricioempresa

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.

TheKill

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

fabricioempresa

Depois você passa como uma lista?

TheKill

passa da forma como eu achar mais fácil…

SQL, Collection, Parametro…

fabricioempresa

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.

TheKill

pelo que parece ali, ele nao tem conexao no seu Query do relatorio. Tente mandar a Conn no JasperPrint

fabricioempresa

Ta vou tentar assim mas se eu quizesse mandar os resultados eu passaria como uma lista?

Valeu

TheKill

como vc achar melhor.

seja sql, collection, parametor

fabricioempresa

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

fabricioempresa

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);

Criado 13 de julho de 2010
Ultima resposta 14 de jul. de 2010
Respostas 11
Participantes 2