[RESOLVIDO]IReports

Galera seguinte resolvido a questão do campo no ireports, agora preciso usar parametros bom eu tenho o .jasper onde eu criei o parametro NomeMembro no query do jasper esta assim

SELECT
SH_CADASTROS_MEMBROS.“IgrejaNome”,
SH_CADASTROS_MEMBROS.“NomeMembro”,
SH_CADASTROS_MEMBROS.“DtNascMembro”,
SH_CADASTROS_MEMBROS.“RGMembro”,
SH_CADASTROS_MEMBROS.“FotoMembro”,
SH_CADASTROS_MEMBROS.“CargoMembro"
FROM
"dbo”.“SH_CADASTROS_MEMBROS” SH_CADASTROS_MEMBROS
WHERE
SH_CADASTROS_MEMBROS.“NomeMembro” = $P{NomeMembro}
ORDER BY
SH_CADASTROS_MEMBROS.“NomeMembro” ASC

ai o codigo que chama o relatorio é este:

public class RL_CARTEIRAS_MEMBROS { Conexao conexao; public RL_CARTEIRAS_MEMBROS() { try { conexao = new Conexao(); conexao.conectar(); conexao.executeSQL("select * from SH_CADASTROS_MEMBROS"); // JOptionPane.showMessageDialog(null,"select * from SH_CADASTROS_MEMBROS where NomeMembro = '$P!{NomeMembro}'"); JRResultSetDataSource jrRS = new JRResultSetDataSource(conexao.resultset); //supondo que o teu ficheiro teste.jasper esteja dentro da tiua aplicação URL arquivo = getClass().getResource("Carteiras_Membros.jasper"); HashMap map = new HashMap(); map.put("Rodrigo de Almeida Padilha","NomeMembro"); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo); //aqui, como não vais passar parâmetros para dentro do relatório, e porque estou a assumir que não tenhas ligação com base de dados, os dois ultimos parametros são nulos JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, jrRS); //isto mostra.te o viewer, penso que é a melhor maneira, pois assim a pessoa escolhe o formato em que quer gravar, e o sitio onde gravar JasperViewer jrviewer = new JasperViewer(jasperPrint, false); jrviewer.setVisible(true); } catch (JRException ex) { JOptionPane.showMessageDialog(null, ex); } } }

oque eu estou fazendo errado

Cara… nao uso o Jasper dessa forma… deixando ele fazer as consultas… já passo a lista doq ele tem q trabalhar pronta…

Mas… de qualquer forma… olhando teu codigo… uma coisa que chama atenção é teu Map.

Primeiro o valor e depois a chave… :shock:

Tente usar desta forma:

No seu caso:

:wink:

e so para completar o que o guivirtuoso disse, vc tem q descidir se vc vai usar a query pelo Ireport ou para pelo java.

Ok, na verdade a questão do map eu tinha trocado olhando outro post, mas digamos que eu queira usar so o jasper como que eu faço o codigo no java dai

codigo novo, mas continua não filtrando

public class RL_CARTEIRAS_MEMBROS { Conexao conexao; public RL_CARTEIRAS_MEMBROS() { try { conexao = new Conexao(); conexao.conectar(); conexao.executeSQL("select * from SH_CADASTROS_MEMBROS"); // JOptionPane.showMessageDialog(null,"select * from SH_CADASTROS_MEMBROS where NomeMembro = '$P!{NomeMembro}'"); JRResultSetDataSource jrRS = new JRResultSetDataSource(conexao.resultset); //supondo que o teu ficheiro teste.jasper esteja dentro da tiua aplicação URL arquivo = getClass().getResource("Carteiras_Membros.jasper"); HashMap map = new HashMap(); map.put("NomeMembro","Rodrigo de Almeida Padilha"); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo); //aqui, como não vais passar parâmetros para dentro do relatório, e porque estou a assumir que não tenhas ligação com base de dados, os dois ultimos parametros são nulos JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, jrRS); //isto mostra.te o viewer, penso que é a melhor maneira, pois assim a pessoa escolhe o formato em que quer gravar, e o sitio onde gravar JasperViewer jrviewer = new JasperViewer(jasperPrint, false); jrviewer.setVisible(true); } catch (JRException ex) { JOptionPane.showMessageDialog(null, ex); } } }

cara,

tenta assim

public class RL_CARTEIRAS_MEMBROS {
     Conexao conexao;
    public RL_CARTEIRAS_MEMBROS() {
        try {
            //supondo que o teu ficheiro teste.jasper esteja dentro da tiua aplicação
            URL arquivo = getClass().getResource("Carteiras_Membros.jasper");
            HashMap map = new HashMap();
            map.put("NomeMembro", "Rodrigo de Almeida Padilha");
            JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);
            //aqui, como não vais passar parâmetros para dentro do relatório, e porque estou a assumir que não tenhas ligação com base de dados, os dois ultimos parametros são nulos
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map);
            //isto mostra.te o viewer, penso que é a melhor maneira, pois assim a pessoa escolhe o formato em que quer gravar, e o sitio onde gravar
            JasperViewer jrviewer = new JasperViewer(jasperPrint, false);
            jrviewer.setVisible(true);
        } catch (JRException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
    }
}

Assim usei o codigo mas ai da um erro dizendo o documento não contem paginas, eu acho porque a consulta não trouxe nenhum resultado

deu erro ou abriu o pdf vazio?

testa sua query no banco de dados e ve se traz algum registro

A propriedade “When No Data” do teu relatório está como “No Pages”, por isso a exceção que tu comentou.
Se ele realmente não contém dados, altera pra outra opção, como “Blank Page” ou “All Sections, No Detail”.
Abraço!

ele da um erro e abre o pdf vazio, e quando eu mudo da aba designer para preview ele abre normal me pede o valor do parametro e funciona normal, eu acho que ele não ta passando o parametro

posta o erro ai

21/10/2011 17:41:15 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from URL [jar:file:/C:/shalomR7/JARs/jasperreports-fonts-3.6.2.jar!/net/sf/jasperreports/fonts/fonts.xml]
21/10/2011 17:41:16 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter
AVISO: The supplied java.sql.Connection object is null.

posta o erro completo,
e coloque o log dentro da tag [code]

pior que este é o erro completo, eu não tenho nem ideia do que esta acontecendo

21/10/2011 17:41:15 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from URL [jar:file:/C:/shalomR7/JARs/jasperreports-fonts-3.6.2.jar!/net/sf/jasperreports/fonts/fonts.xml] 21/10/2011 17:41:16 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init> AVISO: The supplied java.sql.Connection object is null.

é cara, estranho
vc configurou direitinho seu DataSource, qdo vc testa pelo ireport, funciona?

pior que quando eu testo pelo netbeans funciona que é uma beleza

cara,

faz o seguinte

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, conexao);//passa um objeto connection 

gente fiz de uma maneira diferente, utilizei o codigo da consulta pelo java mesmo ai passei o where que eu queria nele mesmo, mas obrigado a todos pelas ajudas