Parametros do iReport

8 respostas
AlencarCanton

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:

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" );
	}


}

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!

8 Respostas

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,

pedruhenrik

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,

na verdade aqui: String Produto = (tfIdProduto.getText().trim()); acho q vc seta o valor mesmo,
mas aqui

parametros.put(“Produto”, new String());
vc declara o valor como uma nova string, assim passa sem valor mesmo.

att,

AlencarCanton

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.
=\

pedruhenrik

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,

AlencarCanton

não ué

anexei,olha aí

pedruhenrik
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" );
	}
}

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,

AlencarCanton

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

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

?

pq eu ja tinha tentado isso..
mas funcionou
vlw
:D
resolvido!

pedruhenrik

apenas isso.

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

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

att,

Criado 8 de junho de 2011
Ultima resposta 8 de jun. de 2011
Respostas 8
Participantes 2