Ajuda com Parametro na Consulta SQL

E ae galera,beleza?

To usando o iReport e quero fazer um relatorio que utilize uma consulta desse tipo:

                   [b]SELECT * FROM pedido WHERE IdPedido = ?

[/b]
Utilizando o auxiliar para criação de relatórios ele pede a consulta,eu devo usar “?” mesmo ?
O que muda no metodo de gerar o relatório?
Eu consegui gerar um relatorio utilizando esse código:

[code]private PreparedStatement pstm;
private ResultSet rs;

public iReportExample() {
}

public void gerar(String jasperFile, String IdPedido) throws JRException, SQLException, ClassNotFoundException {


    Class.forName(driver);

    dbAcess sql = new dbAcess();
    pstm = (PreparedStatement) sql.conectar().prepareStatement(consultaTeste);
    rs = pstm.executeQuery();

    Connection con = (Connection) DriverManager.getConnection(url, login, pwd);
    Statement stm = con.createStatement();
    String query = "SELECT * FROM classificacaoproduto";
    ResultSet rs = stm.executeQuery(query);


    //implementação da interface JRDataSource para DataSource ResultSet
    JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

    //executa o relatório
    Map parametros = new HashMap();
    parametros.put("classificacao", new String());
    /*
    JasperCompileManager.compileReportToFile("relatorioModel2.jrxml");
     *
     */

    /* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint    */
    JasperFillManager.fillReportToFile(jasperFile, parametros, jrRS);

    /* Exporta para o formato PDF */
    JasperExportManager.exportReportToPdfFile("report2.jrprint");
}

}[/code]

Ola, voce quee que sua aplicação gere o relatório, ou quer gerar diretamente pelo IReport?

vc deve utilizar parametros.

no código java vc pode passar o parametro dentro do Map.

att,

Você poderia usar algo com um tratamento melhor do que o map não?

ja que soh está usando um valor…

acho que ficaria mais simples…

abraços.

Ola, ainda não entendi mto bm seu problema, mas tentei extrair uma parte do meu código que acho que pode estar lhe fazendo falta:

                //criando data source
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);//list = lista de objetos(ArrayList)

		//mostrando o relatorio
		JasperPrint jprint = JasperFillManager.fillReport(masterReport, map, ds);
		JasperViewer viewer = new JasperViewer(jprint, false);
		viewer.setTitle(title);
		viewer.setExtendedState(JFrame.MAXIMIZED_BOTH);
		viewer.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		viewer.setVisible(true);

Porem neste caso não poderias usar direto o resultado da query, deverias tranformar aqules dados em objetos

A resposta é, depende.
Se você irá enviar o parâmetro ao jasper, precisa determinar uma variável que receba o mesmo, que provavelmente será enviado dentro de um map.
Então, após criar a consulta, é possível editar a query e colocar $P{param} e, no mapa, map.put(“param”, Object_param);

Caso a consulta seja feita no java, aí não tem problema…

Vlw aí galera,
descobri oq eu queria fazer,

coloquei o ID como parâmetro no iReport e a consulta fica assim:

SELECT * FROM PEDIDO WHERE IdPedido = $P{ID}

aí passo o ID nessa linha:

=)

RESOLVIDO