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:
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
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