Passagem de parametro do netbeans para o ireport

Oi galera …
eu to fazendo um aplicativo no Netbeans 6.9.1 para que fazer a passagem d parametro para o Ireport 4 .Ond seleciona num Conbobox o que será impresso…

eu ja vi muitos,muitos código e varios Tópicos aki … mais nenhum deu certo…

Alguém poderia me ajuda??? :?: :?:

Cara primeiramente sua IDE não interessa quando você vai desenvolver um sistema.
No caso do IReport a maneira mais facil de você ultilizar é compilar para .jasper, e no java criar um map com nomeDoParametro e Valor e dar um fill no JasperPrint(Não lembro agora o nome kkk ).

Cara não me recordo como faz isso, mas dando uma procurada no google acho que você não vai ter problema em encontrar.
Você pode ficar confuso porque tem varios exemplos onde o cara compila o arquivo xml do jasper etc… etc…

Olá, para voce passar um parametro do java para o IReport é simples.
Primeiramente vá no IReport e crie um parametro em Parameters, de um nome para ele ex: meuParametro.
Agora va no seu arquivo java e faça o seguinte para gerar o relatorio

// exemplo para criar um  ResultSet
String SQL = "select * from suaTabela";
PreparedStatement stm = suaConexao.prepareStatement(SQL);
ResultSet resultSet = stm.executeQuery();

JRResultSetDataSource jrRS = new JRResultSetDataSource(resultSet); // cria o JRResultSetDataSource passando o ResultSet
Map<Object,Object> parametros = new HashMap<Object,Object>();
InputStream relatorio =  this.getClass().getClassLoader().getResourceAsStream("relatorios/seuRelatorio.jasper"); // coloque o endereço corretamente aonde esta o seu relatório

//manda os parametros para o IReport
parametros.put("aqui o que voce quer mandar", meuParementro);   // recebe o valor que voce quer mandar e o nome do seu parametro la no IReport (voce pode mandar quantos parametros voce quiser)

// e por ultimo para imprimir

JasperPrint jasperPrint = JasperFillManager.fillReport(relatorio, parametros,jrRS);
JasperViewer.viewReport(jasperPrint,false);

Espero ter ajudado

[quote=julianolandim]Olá, para voce passar um parametro do java para o IReport é simples.
Primeiramente vá no IReport e crie um parametro em Parameters, de um nome para ele ex: meuParametro.
Agora va no seu arquivo java e faça o seguinte para gerar o relatorio

// exemplo para criar um  ResultSet
String SQL = "select * from suaTabela";
PreparedStatement stm = suaConexao.prepareStatement(SQL);
ResultSet resultSet = stm.executeQuery();

JRResultSetDataSource jrRS = new JRResultSetDataSource(resultSet); // cria o JRResultSetDataSource passando o ResultSet
Map<Object,Object> parametros = new HashMap<Object,Object>();
InputStream relatorio =  this.getClass().getClassLoader().getResourceAsStream("relatorios/seuRelatorio.jasper"); // coloque o endereço corretamente aonde esta o seu relatório

//manda os parametros para o IReport
parametros.put("aqui o que voce quer mandar", meuParementro);   // recebe o valor que voce quer mandar e o nome do seu parametro la no IReport (voce pode mandar quantos parametros voce quiser)

// e por ultimo para imprimir

JasperPrint jasperPrint = JasperFillManager.fillReport(relatorio, parametros,jrRS);
JasperViewer.viewReport(jasperPrint,false);

Espero ter ajudado
[/quote]

EI… EU NAUM CONSEGUI …Esse código cria um classe ou coloca no botão ???..

E quando eu coloco o nome do meuParametro naum aceita…

I muito obrgado…

oi ananda_8 desculpe eu coloquei o put invertido, primeiro em parênteses você coloca o nome do seu parametro (o que voce definiu no ireport) e depois o valor que você quer mandar.
entao fica assim:

parametros.put("meuParametro", "valor que voce ira mandar");

isso que te passei é um método, voce chama ele no botão que você ira imprimir.

to com problema com essa linha …

ResultSet resultSet = stm.executeQuery();

ta um erro na minha conexão…

me passa como voce esta fazendo a conexao

package utilitarios;
import java.sql.SQLException;
import java.sql.;
import javax.swing.
;
public class conexao{
final private String driver = “sun.jdbc.odbc.JdbcOdbcDriver”;
final private String url = “jdbc:odbc:sistema_escola”;
final private String usuario = “”;
final private String senha = “”;
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public boolean conecta(){
boolean result = true;
try{
Class.forName(driver);
conexao = DriverManager.getConnection(url, usuario, senha);
System.out.println(“Conectou ao Banco de dados”);
}catch(ClassNotFoundException Driver){
JOptionPane.showMessageDialog(null, "Driver não localizado: " + Driver);
result = false;
}catch(SQLException Fonte){
JOptionPane.showMessageDialog(null, "Deu erro na conexão com a fonte de dados: " + Fonte);
result = false;
}
return result;
}
public void desconecta(){
boolean result = true;
try{
conexao.close();
System.out.println(“Banco de Dados Fechado”);
}catch(SQLException erroSQL){
JOptionPane.showMessageDialog(null, “Não foi possível fechar o Banco de Dados” + erroSQL.getMessage());
result = false;
}
}
public void executeSQL(String sql){
try{
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery(sql);
}catch(SQLException sqlex){
JOptionPane.showMessageDialog(null, “Não foi possível executar o comando SQL\n” + sqlex + “\n\no comando SQL passado foi: \n” + sql + sqlex.getMessage());
}
}

public Connection getConnection() {
    throw new UnsupportedOperationException("Not yet implemented");
}

}

ananda_8,

1 - Pq ta usando ODBC ?
2 - Qual banco esta usando ?
3 - Quando for postar aqui, trechos de codigos coloque entre as tags CODE
4 - Pesquise sobre Pattern Dao
5 - Leia a apostila FJ21 na parte de DAO
6 - Siga o esquema q o juliano te passou.

t+ e boa sorte

Faça o seguinte, vamos criar uma outra classe de conexao assim fica mais facil de eu te ajudar.
Crie uma classe e de o nome para dela de Conexao e copie o codigo abaixo:

public class Conexao{
    
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
    final private String url = "jdbc:odbc:sistema_escola"; 
    final private String usuario = ""; 
    final private String senha = "";
    
    public static Connection getConnection() throws SQLException{
        try {
             Class.forName(driver);                             
             return DriverManager.getConnection(url, usuario, senha);                         
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, e.getMessage());            
            throw new SQLException();            
        }
        
    } 
    
}

agora vá na sua classe que voce esta usando para gerar o relatório e chame ela da seguinte maneira

Connection suaConexao = Conexao.getConnection();
// agora que voce tem a conexao basta fazer como eu fiz
 String SQL = "select * from suaTabela";  
PreparedStatement stm = suaConexao.prepareStatement(SQL);  
ResultSet resultSet = stm.executeQuery(); 

espero que agora de certo e se nao der me fale.

eu to com o problema nesse código…

Class.forName(driver); return DriverManager.getConnection(url, usuario, senha);

… vc sab o pq??

[quote=fernandopaiva]ananda_8,

1 - Pq ta usando ODBC ?
2 - Qual banco esta usando ?
3 - Quando for postar aqui, trechos de codigos coloque entre as tags CODE
4 - Pesquise sobre Pattern Dao
5 - Leia a apostila FJ21 na parte de DAO
6 - Siga o esquema q o juliano te passou.

t+ e boa sorte[/quote]

Pq ta usando ODBC ? R: eu naum sei outra meneira d fazer "caminho " do BD para a aplicação… Se vc sab por favor me ensina…(Eu to com problema no .jar pois quando eu coloco no outro PC eu naum encontro o Bd pra fazer a coneXão com ODBC…

o BD é Access .

E valeu pelas dicas…

[quote=ananda_8]eu to com o problema nesse código…

Class.forName(driver); return DriverManager.getConnection(url, usuario, senha);

… vc sab o pq??
[/quote]

na classe Conexao voce importou o java.sql ?

import java.sql.*;
import javax.swing.JOptionPane;

public class Conexao{  
      
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";   
    final private String url = "jdbc:odbc:sistema_escola";   
    final private String usuario = "";   
    final private String senha = "";  
      
    public static Connection getConnection() throws SQLException{  
        try {  
             Class.forName(driver);                               
             return DriverManager.getConnection(url, usuario, senha);                           
        } catch (ClassNotFoundException e) {  
            JOptionPane.showMessageDialog(null, e.getMessage());              
            throw new SQLException();              
        }  
          
    }   
      
} 

porque voce não usa o MySql ao invés do Access ?

[quote=ananda_8]eu to com o problema nesse código…

Class.forName(driver); return DriverManager.getConnection(url, usuario, senha);

… vc sab o pq??
[/quote]

se voce importou o java.sql.* e mesmo assim esta dando erro peço para que você mande o erro pra gente te falar o que esta acontecendo

[quote=ananda_8][quote=fernandopaiva]ananda_8,

1 - Pq ta usando ODBC ?
2 - Qual banco esta usando ?
3 - Quando for postar aqui, trechos de codigos coloque entre as tags CODE
4 - Pesquise sobre Pattern Dao
5 - Leia a apostila FJ21 na parte de DAO
6 - Siga o esquema q o juliano te passou.

t+ e boa sorte[/quote]

Pq ta usando ODBC ? R: eu naum sei outra meneira d fazer "caminho " do BD para a aplicação… Se vc sab por favor me ensina…(Eu to com problema no .jar pois quando eu coloco no outro PC eu naum encontro o Bd pra fazer a coneXão com ODBC…

o BD é Access .

E valeu pelas dicas…[/quote]

é claro que não vai encontrar o BD quando você colocar em outra maquina, você quem que colocar na url da sua conexão o ip da maquina que esta o BD
agora a respeito do ODBC se eu fosse você usaria o banco de dados MySql e para conectar usaria o driver para conectar ao inves do odbc

ananda_8, pra vc q ta começando
eh melhor ler as apostilas FJ11 e FJ21 da Caelum…vaum te auxiliar muiiito
e para de usar Access use pelo menos SQLite

t+ e boa sorte.

Eu importei…

Aff ta cheio d erro…

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code at relatório.rela.jButton1ActionPerformed(rela.java:351) at relatório.rela.access$400(rela.java:24) at relatório.rela$5.actionPerformed(rela.java:243)

esse é um deles…

[quote]é claro que não vai encontrar o BD quando você colocar em outra maquina, você quem que colocar na url da sua conexão o ip da maquina que esta o BD
agora a respeito do ODBC se eu fosse você usaria o banco de dados MySql e para conectar usaria o driver para conectar ao inves do odbc [/quote]

juliano,

eu naum usa o driver como vc disse … pois o meu prof so ensinou a usar o ODBC ( mau isso na verdade)… eu to no estagio… e me colocaram pra fazer isso ( sem nenhuma ajuda)…

muitissimo obrigado pela ajuda e desculpa pelas perguntas (bobas)…

[quote=ananda_8]Eu importei…

Aff ta cheio d erro…

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code at relatório.rela.jButton1ActionPerformed(rela.java:351) at relatório.rela.access$400(rela.java:24) at relatório.rela$5.actionPerformed(rela.java:243)

esse é um deles…

[/quote]

rsrsrs… estou vendo mesmo muitos erros. rsrs…
se voce quiser pode me enviar o seu projeto no meu e-mail assim eu corrijo ele pra você, porque com tantos erros fica difícil de ajudar sem olhar.

ok… qual é o seu e-mail???