Colegas algum manjaoo de japer ireport me ajuda, por favor !!!
seguinte fiz dois relatorios(master) e o subrelatorio(secundario), no master colokei o subreport, ok
no meu aplicativo feito em swing, o relatorio de numero 1 gera perfeito, mais qdo vou gera o relatorio de numero 2 o subreport pega dados do relatorio numero 1 … pq ??? o q tenho q mudar no meus 2 metodos??? ou no arquivooo. jrxml ??? qual no master ou secundario ???
meu metodo abaixooo …
considere q tenha um botaoo imprimir e ao clicar ele chame o metodo
public void geraRelatorio1Manut2 (secundario) e dp public void geraRelatorio1Manut1 (master)
public class GeraRelatorioManutencao {
BDConexao conexao= new BDConexao();
/* Gera Relatorio e visualiza-o */
public void geraRelatorio1Manut1(JanRelatorioManutencao relatorio1) throws JRException, Exception {
Connection con = conexao.criaConeccao();
//java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/textilmaq","root","");
con.setAutoCommit(false);
PreparedStatement consulta = con.prepareStatement
(
" select codManutencao,codRelatorio,codTarefa,maquina,modelo,tarefa," +
" periodico,ok,ajuste,reparo,substituicao,lubrificacao,data,nota " +
" from manutencao " +
" where codRelatorio = ? " +
" and codTarefa <> 0 " +
" order by codManutencao, codTarefa "
);
System.out.println("\ncod Manut 1 = "+relatorio1.campo1.getText().trim());
consulta.setInt(1,Integer.parseInt(relatorio1.campo1.getText().trim()));
try{
ResultSet rs = consulta.executeQuery();
//rs.setFetchSize(1000);
/* JREmptyDataSource Esvaziar o DataSource ResultSet */
JREmptyDataSource jrED = new JREmptyDataSource();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS1 = new JRResultSetDataSource( rs );
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters1 = new HashMap();
parameters1.put("pathsubreport", "C:/eclipse/workspace/TextilMAQGUI/Relatorios/Manutencao2.jasper");
JasperFillManager.fillReportToFile("C:/eclipse/workspace/TextilMAQGUI/Relatorios/Manutencao1.jasper", parameters1, jrRS1);
con.commit();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Relatorio nao pode ser exibido, Erro "+e,"Mensagem", 0);
con.rollback();
consulta.close();
}
}
public void geraRelatorio1Manut2(JanRelatorioManutencao relatorio1) throws JRException, Exception {
Connection con = conexao.criaConeccao();
con.setAutoCommit(false);
PreparedStatement consulta = con.prepareStatement
(
" select codManutencao,codRelatorio,codSub,tipo,subtarefa, " +
" periodico,ok,ajuste,reparo,substituicao,lubrificacao,data,nota " +
" from manutencao " +
" where codRelatorio = ? " +
" and codSub <> 0 " +
" order by codManutencao,codSub "
);
System.out.println("\ncod Manut 2 = "+relatorio1.campo1.getText().trim());
consulta.setInt(1,Integer.parseInt(relatorio1.campo1.getText().trim()));
try{
ResultSet rs = consulta.executeQuery();
//rs.setFetchSize(1000);
System.out.println("\n ok ");
/* JREmptyDataSource Esvaziar o DataSource ResultSet */
JREmptyDataSource jrED = new JREmptyDataSource();
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS2 = new JRResultSetDataSource( rs );
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
HashMap parameters2 = new HashMap();
JasperFillManager.fillReport("C:/eclipse/workspace/TextilMAQGUI/Relatorios/Manutencao2.jasper",parameters2,jrRS2);
System.out.println("\n ok 2 ");
con.commit();
geraRelatorio1Manut1(relatorio1);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Relatorio nao pode ser exibido, Erro "+e,"Mensagem", 0);
con.rollback();
consulta.close();
}
}
}