Filtro java + mysql + ireport

4 respostas
R

Amigos…to usando java + mysql + ireport/jasper…blz…ja consigo no ireport gerar o designe e ate ver os dados e gero o .jasper…ate ai tudo bem…ai na java tenho um form onde preencho um JTextField e depois clico no botao que chama o relatorio. Como filtro para aparecer no relatorio os dados que digitei no JTextField do form?

To tentando assim: no ireport criei um parametro chamado NUMANALISE que tem o mesmo nome do campo do banco de dados: NUMANALISE. Na query criei um:

select * from tbl_amostragem

e na classe java para chamar o .jasper fiz como abaixo:

try {

Class.forName(“com.mysql.jdbc.Driver”);

Connection ConectaNoBanco1 = DriverManager.getConnection(“jdbc:mysql://localhost:3306/MS,root,123);

Statement stmt1 = ConectaNoBanco1.createStatement();

ResultSet RS1 = stmt1.executeQuery(“Select * from tbl_amostragem”);

JRResultSetDataSource jrRS1 = new JRResultSetDataSource(RS1);

HashMap parameters = new HashMap();

RS1.next();

parameters.put(“rNumAnalise”,RS1.getInt(“NUMANALISE”));

JasperPrint print = JasperFillManager.fillReport(“D:/PROJETOS/JMS/MS/src/ms/rpt_Amost_Data.jasper,parameters,jrRS1); //new HashMap(),new JREmptyDataSource());

JasperViewer jrviewer = new JasperViewer(print,false);

jrviewer.setVisible(true);
}catch(JRException jre)

o que ta errado?

Rodrigo

4 Respostas

tengan

por que vc não fez a seguinte consulta:

select * from tbl_amostragem WHERE NUMANALISE = $P{rNumAnalise}

esta consulta é feita no proprio Ireports, então quando ele visualizar o relatório é feito a consulta e montado o relatório.

R

Então…mas e aquele select que ta na classe java? pra que server?

ResultSet RS1 = stmt1.executeQuery(“Select * from tbl_amostragem”);

Rodrigo

R

Entao, fiz o proposto mas nao funcionou…pergunto?

  • Na Minha classe:

    * sql => ("Select * from tbl_amostragem")
    
     * map => HashMap parameters = new HashMap();
                   RS1.next();
                   parameters.put("rNumAnalise",RS1.getLong("NUMANALISE"));
    
     - Onde rNumAnalise tambem é o nome da minha variavel que armazena o valor que quero que apareça no relat.: 
    
           
    
                 int rNumAnalise = Integer.parseInt(eNumAnalise.getText());
    
    • no caso o nome do meu parametro em parameters.put(“rNumAnalise”,RS1.getInt(“NUMANALISE”)); tambem é rNumAnalise e o mesmo nome do parametro q coloquei na query do ireport:

select * from tbl_amostragem WHERE NUMANALISE = $F{rNumAnalise}

entao, tenho:

rNumAnalise => variavel que pega valor do JTextField => int rNumAnalise = Integer.parseInt(eNumAnalise.getText());

rNumAnalise => parameters de HashMap => parameters.put(“rNumAnalise”,RS1.getLong(“NUMANALISE”));

rNumAnalise => parametro dentro do ireport => select * from tbl_amostragem WHERE NUMANALISE = $F{rNumAnalise}

tem em tres lugares e ainda tem esse outro select da classe:

ResultSet RS1 = stmt1.executeQuery(“Select * from tbl_amostragem”);

Nao consigo entender!

tengan
try { 
Class.forName("com.mysql.jdbc.Driver"); 
Connection ConectaNoBanco1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/MS","root","123"); 
HashMap parameters = new HashMap(); 
parameters.put("rNumAnalise",Integer.parseInt(eNumAnalise.getText())); 
JasperPrint print = JasperFillManager.fillReport("D:/PROJETOS/JMS/MS/src/ms/rpt_Amost_Data.jasper",parameters,ConectaBanco1); //new HashMap(),new JREmptyDataSource()); 
JasperViewer jrviewer = new JasperViewer(print,false); 
jrviewer.setVisible(true); 

}catch(JRException jre) {
.....
}

no Ireports crie essa consulta:

select * from tbl_amostragem WHERE NUMANALISE = $P{rNumAnalise}

onde:
$P{rNumAnalise} = parametro obtido pelo Hashmap parameters que tem o valor do JTextField eNumAnalise

se vc usar esse comando

select * from tbl_amostragem WHERE NUMANALISE = $F{rNumAnalise}

o $F{rNumAnalise} é um dos fields (campos) que resulta da tua consulta como antes de ralizar a consulta esse campo não tem nenhum valor vai dar em nada.

Agora vc só tem um rNumAnalise o do parameters que é pego pelo relatório para a execução da consulta.
espero ter ajudado no começo também fiz bastante confusão com os parametros

Criado 20 de setembro de 2006
Ultima resposta 20 de set. de 2006
Respostas 4
Participantes 2