Parametros no ireport!

5 respostas
homisinho

opa!!
ja dei uma olhada em varios exemplos…
n sei o q ta errado no meu codigo…

package rel;

import net.sf.jasperreports.engine.<em>;

import net.sf.jasperreports.view.JasperViewer;

import java.sql.</em>;

import java.util.*;

public class teste {

ResultSet rs;
Statement stm;
Connection con;
private static Connection getConnection( ) throws

ClassNotFoundException, SQLException

{

String driver = “org.firebirdsql.jdbc.FBDriver”;

String url = jdbc:firebirdsql:localhost/3050:c://BANCO.gdb;

String user = “SYSDBA”;

String password = “masterkey”;

Class.forName(driver);

Connection con = DriverManager.getConnection( url, user, password );

return con;

}
public void geraRelatorio( ) throws JRException, Exception

{

try{

con = getConnection( );

stm = con.createStatement( );

String query = select CODLISTA,CODIGO,NOME from produto;

rs = stm.executeQuery( query );

}

catch (SQLException e) {

System.out.println (A Consulta não Funcionou);

System.out.println (e.getMessage ());

}
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
    Map parameters = new HashMap();
    parameters.put( "COD", new Integer(2)); 
    JasperFillManager.fillReportToFile( "Relatorio.jasper", parameters, jrRS );        
    JasperViewer.viewReport( "ra.jrprint", false);

}

public teste() {
    
}

}

seguinte n sei como mas o valor do parametro COD n ta passando para o relatorio…ja no ireport quando eu testo ele pede o valor eu coloco 2 e funciona blz!!!
c alguem ajudar agradeço!!

5 Respostas

otaviofcs

Chute mas acho que te ajuda: tenta ao invés de colocar um String ao invés de um Integer no parâmetro para ver se resolve.

homisinho

e ai tche!!

seguinte, coloquei como string e alterei no relatorio pra colocar o valor do parametro em um text field, e o valor apareceu.
Só tenho uma duvida…
como eu faço pra utilizar o parametro em uma consulta onde o valor dele e inteiro…
como por exemplo:

select CODLISTA,CODIGO,NOME from produto
where CODLISTA = $P{COD}

testei assim e n funcionou…
o q eu faço?

otaviofcs

Como assim tem um sql dentro do seu relatório? É um subrelatório? Outra coisa, em qualquer caixa você teria que colocar:

" select CODLISTA,CODIGO,NOME from produto
where CODLISTA = " + $P{COD}

Até porque um comando sql ignora o fato de ser ou não um integer no texto. Se não for só vai dar pau na consulta. Agora, se for para fazer uma conta, por exemplo, ficaria assim:

1 + Integer.parseInt($P{COD})

Não se esqueça que iReport é java e interpreta como java .

abraços,

Otávio

homisinho

n blz!!
eu q tava ratiando!!!
o select eu fiz no java e passei o resultado pro relatorio!!!

mas então pq e necessario cria um select no ireport??? so pra testa o relatorio??

otaviofcs

pra retornar os campos no modo design, senão o iReport entra no processo adivinhão de nome de campos :).

Aliás, que frase doida é essa no seu avatar!!!

Criado 11 de janeiro de 2007
Ultima resposta 12 de jan. de 2007
Respostas 5
Participantes 2