estou aprendendo a mexer com ireport achei muitos tutorias ensinando a fazer o relatório.
mas quase nenhum que ensina como aplica lo em minha app Desktop e como passar parâmetros para ele.
os relatórios ja estao prontos porem nao consigo passar os parametros… os dados sao sempre os mesmos.
alguém pode me indicar algum material ou dar uma breve explicação de como fazer isso??
isso eh tao simples que nem precisa de tutorial, os parametros sao passados atraves de um Map. segue exemplo de codigo:
[code]String nome_arquivo_ponto_jasper = “teste.jasper”;
Connection con = “sua conexao com o banco”;
Map map = new HashMap();
map.put(“meu_parametro”, “valor_do_parametro”)
eu consegui importar meu relatório…minha aplicação está chamando o relatorio porem, o relatorio é sempre o mesmo.
eu mudo os parametros e continua saindo o relatorio do sql que eu usei para fazer no ireport.
estou fazendo algo errado?
eu deveria fazer alguma coisa no ireport para indicar que os parâmetros seriam mudados?
[code]public class JavaApplication4 {
/**
* @param args the command line arguments
*/
private final String driver = "com.mysql.jdbc.Driver";
private final String usuario = "root";
private final String senha = "";
private final String url = "jdbc:mysql://localhost/testeJasper";
public JavaApplication4(){
try {
Class.forName(driver);
String arquivo= "C:/Users/Luciana/Documents/NetBeansProjects/JavaApplication4/src/relatorio/relatorioClienteData.jasper";
Connection con = DriverManager.getConnection(url, usuario, senha);
Map map = new HashMap();
map.put("data_compra", "2012/03/25");
map.put("idcliente", 4);
JasperPrint jp = JasperFillManager.fillReport(arquivo , map, con);
JasperViewer.viewReport(jp, false, new java.util.Locale("pt", "BR"));
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println(ex.getMessage()
+ " \nFalha na conexao via jdbd ");
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
new JavaApplication4();
}
olhando alguns topicos… parece que eu tenho que marcar os campos que vão receber parâmetros com “$P!{}”
minha quary está assim:
<queryString>
<![CDATA[select c.nome,c.endereco,
l.cidade,
m.data_compra, m.qtd,m.total
from cliente c
inner join localidade l
on
c.localidade_idlocalidade=l.idlocalidade
inner join marmita m
on
c.idcliente=m.cliente_idCliente
where m.data_compra='2012/03/25' and c.idcliente=1]]>
</queryString>
aplicando “$P!{}”, fica assim:
<queryString>
<![CDATA[select c.nome,c.endereco,
l.cidade,
m.data_compra, m.qtd,m.total
from cliente c
inner join localidade l
on
c.localidade_idlocalidade=l.idlocalidade
inner join marmita m
on
c.idcliente=m.cliente_idCliente
where m.data_compra=$P!{'2012/03/25'} and c.idcliente=$P!{1}]]>
</queryString>
porem o ireport nao compila e nem apresenta erro…
essa é a maneira correta??
<parameter name="data_compra" isForPrompting="true" class="java.lang.String">
<parameter name="idcliente" isForPrompting="true" class="java.lang.String">
<queryString>
<![CDATA[select c.nome,c.endereco,
l.cidade,
m.data_compra, m.qtd,m.total
from cliente c
inner join localidade l
on
c.localidade_idlocalidade=l.idlocalidade
inner join marmita m
on
c.idcliente=m.cliente_idCliente
where m.data_compra=$P!{data_compra} and c.idcliente=$P!{idcliente}]]>
</queryString>