[RESOLVIDO] Ajuda Ireport

6 respostas
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

6 Respostas

arqueiros

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.

fabioebner

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...
arqueiros

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.

fabioebner

:*** valeu meu querido

arqueiros

Funcionou??!??!?!

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

Abs

blackout

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