Parametros do iReport

e ae galera,beleza?

Criei esses parametros no iReport: IdPedido,Produto,Produto1,Produto2,Produto3,Produto4
e nesse código aqui eu passo eles como parametro para o metodo “gerar”,mas eles simplismente não aparecem no relatorio…
segue o código:

[code]public class iReportExample {
private static final String url = “jdbc:mysql://localhost/equilibriob”;
private static final String driver = “com.mysql.jdbc.Driver”;
private static final String login = “root”;
private static final String pwd = “”;
private String consultaTeste = “SELECT * FROM PEDIDO WHERE IdPedido = ?”;
private PreparedStatement pstm;
private ResultSet rs;

public iReportExample() {
}

public void gerar( String jasperFile,String IdPedido,String Produto,String Produto1,String Produto2,String Produto3,String Produto4 ) throws JRException , SQLException, ClassNotFoundException {


	Class.forName( driver );
          
	Connection con = (Connection) DriverManager.getConnection( url , login , pwd );
	Statement stm = con.createStatement();
	String query = "SELECT * FROM PEDIDO WHERE IdPedido = "+IdPedido+"";
	ResultSet rs = stm.executeQuery( query );
            pedidoBean pedido = new pedidoBean();
            

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

	//executa o relatório
	Map parametros = new HashMap();
            
	parametros.put("IdPedido", new String());
            parametros.put("Produto", new String());
            parametros.put("Produto1", new String());
            parametros.put("Produto2", new String());
            parametros.put("Produto3", new String());
            parametros.put("Produto4", 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( "RequisicaoDeCompra.jrprint" );
}

}[/code]

Quando vou chamar esse metodo de gerar faço assim:

String Produto = (tfIdProduto.getText().trim()); String Produto1 = (tfIdProduto1.getText().trim()); String Produto2 = (tfIdProduto2.getText().trim()); String Produto3 = (tfIdProduto3.getText().trim()); String Produto4 = (tfIdProduto4.getText().trim()); try { new iReportExample().gerar("RequisicaoDeCompra.jasper", "12",Produto,Produto1,Produto2,Produto3,Produto4); } catch (JRException ex) { Logger.getLogger(CadastroPedido.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(CadastroPedido.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { Logger.getLogger(CadastroPedido.class.getName()).log(Level.SEVERE, null, ex); }

Alguém sabe o que está errado no código?
valeu!

parametros.put("IdPedido", new String()); parametros.put("Produto", new String()); parametros.put("Produto1", new String()); parametros.put("Produto2", new String()); parametros.put("Produto3", new String()); parametros.put("Produto4", new String());

String Produto = (tfIdProduto.getText().trim()); String Produto1 = (tfIdProduto1.getText().trim()); String Produto2 = (tfIdProduto2.getText().trim()); String Produto3 = (tfIdProduto3.getText().trim()); String Produto4 = (tfIdProduto4.getText().trim());

tem valores no map?

testa:

parametros.put("Produto", "timao"); parametros.put("Produto1", "eoh eoh"); parametros.put("Produto2", "campeao"); parametros.put("Produto3", "joga muito"); parametros.put("Produto4", "!!!!!");

att,

[quote=pedruhenrik] parametros.put("IdPedido", new String()); parametros.put("Produto", new String()); parametros.put("Produto1", new String()); parametros.put("Produto2", new String()); parametros.put("Produto3", new String()); parametros.put("Produto4", new String());

String Produto = (tfIdProduto.getText().trim()); String Produto1 = (tfIdProduto1.getText().trim()); String Produto2 = (tfIdProduto2.getText().trim()); String Produto3 = (tfIdProduto3.getText().trim()); String Produto4 = (tfIdProduto4.getText().trim());

tem valores no map?

testa:

parametros.put("Produto", "timao"); parametros.put("Produto1", "eoh eoh"); parametros.put("Produto2", "campeao"); parametros.put("Produto3", "joga muito"); parametros.put("Produto4", "!!!!!");

att,[/quote]

na verdade aqui: String Produto = (tfIdProduto.getText().trim()); acho q vc seta o valor mesmo,
mas aqui [quote]parametros.put(“Produto”, new String()); [/quote] vc declara o valor como uma nova string, assim passa sem valor mesmo.

att,

entendi,
testei assim:

Map parametros = new HashMap(); parametros.put("IdPedido", IdPedido); parametros.put("Produto", Produto); parametros.put("Produto1", Produto1); parametros.put("Produto2", Produto2); parametros.put("Produto3", Produto3); parametros.put("Produto4", Produto4);

mas continua sem escrever nada,
ja escrevi as strings “Produto”,“Produto1”,“Produto2”,“Produto3”,“Produto4” na tela,e estão chegando normal.
=\

vc setou isso na mão dentro do teu iReportExample

parametros.put("Produto", "timao"); parametros.put("Produto1", "eoh eoh"); parametros.put("Produto2", "campeao"); parametros.put("Produto3", "joga muito"); parametros.put("Produto4", "!!!!!");

…???

anexa teu .jrxml

att,

não ué

anexei,olha aí

[code]public class iReportExample {
private static final String url = “jdbc:mysql://localhost/equilibriob”;
private static final String driver = “com.mysql.jdbc.Driver”;
private static final String login = “root”;
private static final String pwd = “”;
private String consultaTeste = “SELECT * FROM PEDIDO WHERE IdPedido = ?”;
private PreparedStatement pstm;
private ResultSet rs;

public iReportExample() {
}

public void gerar( String jasperFile,String IdPedido,String Produto,String Produto1,String Produto2,String Produto3,String Produto4 ) throws JRException , SQLException, ClassNotFoundException {


	Class.forName( driver );
          
	Connection con = (Connection) DriverManager.getConnection( url , login , pwd );
	Statement stm = con.createStatement();
	String query = "SELECT * FROM PEDIDO WHERE IdPedido = "+IdPedido+"";
	ResultSet rs = stm.executeQuery( query );
            pedidoBean pedido = new pedidoBean();
            

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

	//executa o relatório
	Map parametros = new HashMap();
            
	parametros.put("IdPedido", IdPedido);
            parametros.put("Produto", Produto);
            parametros.put("Produto1", Produto1);
            parametros.put("Produto2", Produto2);
            parametros.put("Produto3", Produto3);
            parametros.put("Produto4", Produto4);
           /*
            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( "RequisicaoDeCompra.jrprint" );
}

}[/code]

detesto dar código pronto mas ta ai,
na sua classe iReportExample vc passava como parametro a String Produto mas ñ uitilizava o valor, no map vc passava um nova string nula.

testa ai q deu certo aki.

att,

funcionou mesmo,
mas oq vc mudou no código foi só isso:

[code]# parametros.put(“IdPedido”, IdPedido);

parametros.put(“Produto”, Produto);

parametros.put(“Produto1”, Produto1);

parametros.put(“Produto2”, Produto2);

parametros.put(“Produto3”, Produto3);

parametros.put(“Produto4”, Produto4);[/code]

?

pq eu ja tinha tentado isso…
mas funcionou
vlw
:smiley:
resolvido!

apenas isso.

depois compara o q vc estava fazendo antes com esse novo código.

ñ esqueça o [Resolvido] no titulo do post.

att,