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…
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);
[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…
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.
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.
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();
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…
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
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)
[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)…
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.