[RESOLVIDO] Ajuda Ireport

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

[quote=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[/quote]

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.

Cara se eu colocar no “Default Value Expression” 5,11

ele me retorna

[quote]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[/quote]

se eu nao deixar como default e pedir para inserir a hora de visualizar ele da o seguinte erro:

[code]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…

[/code]

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.

:*** valeu meu querido

Funcionou??!??!?!

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

Abs

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