[RESOLVIDO] Ajuda Ireport

6 respostas
F

Amigos eu so quero uma coisa simples, no meu ireport fazer um SELECT* FROM tabela WHERE codigo IN(1,5,2,6)

SELECT* FROM tabela WHERE codigo IN($P{codigos})

ja tentei passar esse codigos, como List, Collection, String e nada… alguem pode me ajudar como eu faco isso??

obrigado

6 Respostas

A

fabioebner:
Amigos eu so quero uma coisa simples, no meu ireport fazer um SELECT* FROM tabela WHERE codigo IN(1,5,2,6)

SELECT* FROM tabela WHERE codigo IN($P{codigos})

ja tentei passar esse codigos, como List, Collection, String e nada… alguem pode me ajudar como eu faco isso??

obrigado

Vou fazer uma sutil alteração que acho que vai dar certo…

SELECT* FROM tabela WHERE codigo IN([color=red]$P!{codigos}[/color])

Para testar no ireport vai na parte de parametesrs e em codigos coloca no valor como default “1,5,2,6” e em parameter class type coloca a classe java.util.List.

Precisar de algo a mais posta aqui e vamos tentando até funcionar.

F

Cara se eu colocar no "Default Value Expression" 5,11

ele me retorna

Errors compiling C:\relatorios\RGruposPeriodo.jasper!
Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@14837a5 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Syntax error on token ",", invalid AssignmentOperator value = (java.util.List)(5,11); //$JR_EXPR_ID=1$ ^ 2. Syntax error on token ",", invalid AssignmentOperator value = (java.util.List)(5,11); //$JR_EXPR_ID=1$ ^ 3. Syntax error on token ",", invalid AssignmentOperator value = (java.util.List)(5,11); //$JR_EXPR_ID=1$ ^ 3 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:191) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:494) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
Compilation running time: 1.235

se eu nao deixar como default e pedir para inserir a hora de visualizar ele da o seguinte erro:
Error filling print... Error executing SQL statement for : report name 
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : report name      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:141)      at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:681)      at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:601)      at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1247)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826)      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:59)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)      at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:858)      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  Caused by: org.postgresql.util.PSQLException: ERRO: erro de sintaxe em ou próximo a "["      at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)      at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)      at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)      at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255)      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:135)      ... 11 more  
Print not filled. Try to use an EmptyDataSource...
A

Fera acho que talvez estejamos falando de coisas um pouco diferente…

A query está no relatório ou está sendo executada na aplicação?!?!

A possível solução que eu passei é colocando a query dentro do ireport…

SELECT* FROM tabela WHERE codigo IN($P[color=red]![/color]{codigos}) … tem que colocar a exclamação

O parametro codigos tem que ser do tipo [color=red]String [/color]e valor default que passei tem que estar entre aspas duplas [color=red]"[/color]1,5,2,6[color=red]"[/color]

Na a aplicação em que eu trabalho está dessa forma e funciona legalzinho…

Se feito essas alterações não funcionar não sei mais o que pode ser.

F

:*** valeu meu querido

A

Funcionou??!??!?!

Coloca como resolvido vai ajudar muito quem tiver problemas desse tipo…

Abs

B

Pessoal,

Estou com esse mesmo problema, mesmo cenario.

No Dafault Value Expression eu simplesmente coloquei um 0, simplesmente pra ter alguma coisa ja que o iReport obriga a isso.
Mas quando faco o isso o grafico nao eh impresso na tela, se eu mudar para valores estaticos, funciona.

Alguem sabe o porque? Minha query para gerar esse grafico esta da seguinte maneira:

SELECT I.ESTADO, ROUND((COUNT(I.ID) / (SELECT COUNT(*) FROM CURSO_INSTITUICAO))* 100, 0) AS PORCENTAGEM, COUNT(C.ID) AS QUANTIDADE_POR_ESTADO FROM INSTITUICAOENSINO I, CURSOSUPERIOR C, CURSO_INSTITUICAO CI WHERE CI.INSTITUICAOENSINOID = I.ID AND CI.CURSOSUPERIORID = C.ID AND C.ID IN ( $P!{curso_id} ) GROUP BY I.ESTADO

Criado 28 de maio de 2010
Ultima resposta 30 de jul. de 2010
Respostas 6
Participantes 3