Ajuda com Ireport 4.6 [RESOLVIDO]

Olá Galera,

Meu relatório está funcionando, só preciso fazer algumas alterações

Estou precisando de ajuda com o Ireport 4.6 são 2 duvidas:

1º Após ser gerado o relatório, quando você clica em salvar ele habilita vários formatos para exportar. Meu relatório só precisa ser exportado para XLS e PDF. Ele está exportando corretamente, eu gostaria de limitar apenas estas 2 opções. Ao invés de aparecer “.odt,.jasper,.xlsm.pdf…” aparecer só “XLS e PDF”. Alguém sabe como posso limitar somente estes 2 formatos ? Ou não dá ?

2º Preciso fazer um select no Ireport assim:

select origem from pais where key in ($P{tipos}) order by origem

tipos é um parametro do tipo String

Quando eu preencho o parâmetro tipos com 1 ele funciona normal.
select origem from pais where key in (1) order by origem

Quando eu preencho o parâmetro tipos com 1,2 porque eu preciso de mais de 1 key da erro.
select origem from pais where key in (1,2) order by origem

O select funciona normal no SQL Manager só no Ireport que da erro.

Ele da o seguinte erro:

Error filling print… Error executing SQL statement for : Pais
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : Pais
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:246) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1073) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:667) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1235) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:859) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:804) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: java.sql.SQLException: [Informix][Informix ODBC Driver][Informix]Character to numeric conversion error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3148) at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:215) at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(JdbcOdbcPreparedStatement.java:90) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:239) … 12 more

Ele da erro de converter “Character to numeric conversion error”

Alguem tem alguma ideia ?

Obrigado !!!

1 - A responsabilidade de determinar qual o formato para o qual será exportado é da aplicação. A API do iReport possui várias opções (JRPrint, se não me engano e os métodos exportReport…).
2 - se tipos for um parâmetro de tipo/classe numérico, não irá rolar. Pois a query gerada não terá

select origem from pais where key in ('1','2') order by origem 

e sim

select origem from pais where key in ('1,2') order by origem 

e 1,2 não é um número válido no padrão ANSI.
Eu sugiro que faça a consulta na aplicação e mande apenas os dados para o relatório.

E outra coisa, por que diabos não usa as tags de destaque, como [code]?

Eu fiz algo parecido assim para permitir somente pdf e excel, criei meu proprio view.

[code]public class SeuViewer extends JasperViewer {

public SeuViewer(JasperPrint jasperPrint) {
super(jasperPrint, false);
viewer.setSaveContributors(new JRSaveContributor[] { new JRPdfSaveContributor(new Locale(“pt”, “BR”), null), new ExcelSaveContributor(new Locale(“pt”, “BR”), null) })
setTitle(“Titulo”);
}
}

class ExcelSaveContributor extends JRSingleSheetXlsSaveContributor {
public ExcelSaveContributor(Locale locale, ResourceBundle resBundle) { super(locale, resBundle); }

@Override public String getDescription() {
return “Excel (*.xls)”;
}
}[/code]

drsmachado vlw pela ajuda,

Com o code ajuda a leitura ne… malz … hahah

Não manja nada de integra o java com Ireport o pouco que fiz foi caçando na net… Como eu passo somente o resultado para o relatório ? Um ArrayList com os campo que existe no relatório ? Vlw !!

geraldo.vec vlw pela ajuda também,

Aonde eu coloco esse código fonte ? Não sei muito sobre Ireport… Vlw pela ajuda !

Esse código que postei vai ser uma classe, no caso desse exemplo seria: SeuViewer.java, acredito que vc esteja fazendo algum assim para gerar os relatórios:

JasperPrint print = JasperFillManager.fillReport("seuArquivo.jasper", null); JasperViewer viewer = new JasperViewer(print); viewer.setVisible(true);

substitua: JasperViewer por SeuViewer

geraldo.vec vlw pela ajuda !!! Muito Obrigado mesmo, funcionou perfeito. E ainda de quebra veio a resposta de uma próxima pergunta. Como alterar o titulo de “jasper” para um personalizado.!!!

[quote=Acatao]geraldo.vec vlw pela ajuda !!! Muito Obrigado mesmo, funcionou perfeito. E ainda de quebra veio a resposta de uma próxima pergunta. Como alterar o titulo de “jasper” para um personalizado.!!!

[/quote]

É impossível não conseguir encontrar nenhuma informação na web a respeito disso.
Você já procurou no google? Como fez a pesquisa? Pelo jeito está difícil de pesquisar e fácil ficar esperando e atormentando os demais pedindo para responder.

drsmachado Obrigado pela ajuda,

Você já procurou no google?

Não procurei. Você deu a sugestão de enviar o resultado para o relatório. Certamente você já sabe como fazer isto, desculpe te perguntar como fazer ! 7

“Pelo jeito está difícil de pesquisar e fácil ficar esperando” Não estou esperando pois cheguei a estas perguntas após muitas pesquisas !!!

“atormentando os demais pedindo para responder.”, Caso não queira responder é de seu direito!!! Mesmo assim agradeço!

Obrigado pela ajuda novamente ! Desculpa qualquer “atordoamento”.

[quote=Acatao]drsmachado Obrigado pela ajuda,

Você já procurou no google?

Não procurei. Você deu a sugestão de enviar o resultado para o relatório. Certamente você já sabe como fazer isto, desculpe te perguntar como fazer ! 7

“Pelo jeito está difícil de pesquisar e fácil ficar esperando” Não estou esperando pois cheguei a estas perguntas após muitas pesquisas !!!

“atormentando os demais pedindo para responder.”, Caso não queira responder é de seu direito!!! Mesmo assim agradeço!

Obrigado pela ajuda novamente ! Desculpa qualquer “atordoamento”.
[/quote]
Se tivesse deixado de lado a preguiça e pesquisado no google, teria achado tão rápido quanto foi para me enviar as mps.
É o típico sujeito que não quer nada com nada e só serve para sujar a imagem dos profissionais sérios.
Entenda uma coisa, eu não vou fazer o teu trabalho, a não ser que eu receba o teu salário ou algum benefício equivalente, meu caro.
Portanto, se quer algo de presente, peça ao papai ou a mamãe.
E se quiser aprender, pesquise, corre atrás, por que de graça, nada.

Eu também estava precisando que meus relatórios só permitissem pdf ou xls.
Pesquisei no google e o código do colega geraldo.vec caiu como uma luva. Funcionou perfeito.
Valeu!