Problema com relatorio usando Ireport

7 respostas
G

Caros colegas, estou desenvolvendo uma aplicação e estou com um problema com um relatorio, quando fecho o relatorio toda aplicação tambem fecha.
Já fiz alterações na propriedade defaltCloseOperation mas não adiantou.
Segue abaixo o codigo do botão geraRelatorio. Se puderem me ajudar?

public void geraRelatorio_veiculos_desejados() throws JRException, Exception {

Connection con = getConnection();   
    Statement stm = con.createStatement();   
    String query = "select * from cadastro"; 
    ResultSet rs = stm.executeQuery(query);   
    HashMap parameters = new HashMap();   
    JasperPrint jp = JasperFillManager.fillReport("C:\\Relatorios\\rel_veiculos.jasper", parameters, con);   
    JasperViewer jrv = new JasperViewer(jp);   
    jrv.setVisible(true);   
    
    JasperViewer.viewReport("C:\\Relatorios\\rel_veiculos.pdf", true);
     
}

7 Respostas

viniciusfaleiro

O construtor do JasperViewer tem um parametro que vc passa o que ele vai fazer quando for fechado, se vai fechar toda sua aplicação junto ou n…

JasperViewer jrv = new JasperViewer(jp,false);
G

Muito obrigado … valeu…;
Problema resolvido …

G

Você saberia me informar como eu poderia melhorar meu relatorio, como por exemplo:
colocar um filtro de pesquisa como por data inicio e data final?

viniciusfaleiro

Sim… Isso é feito dentro do java… Eu conheço duas maneiras de fazer… uma é criar uma lista de objetos e passar como parametro para o IReport… Essa lista poderia ser proveniente de uma consulta de um banco. Outra maneira (Inclusive é a que eu uso) é passar direto a SQL para o IReport, ou seja, vc coloca seu filtro na consulta e passa somente a consulta para o Ireport…

Tem bastante exemplo no GUJ… se quiser alguma coisa me manda uma MP…

G

Acredito que da maneira que voçê utiliza seja melhor.
Então se eu alterar o select do codigo que lhe mostrei acima, teria
algo a mais para acrecentar no codigo para passar a consulta para o report?

viniciusfaleiro

Na verdade tem N possibilidades. O Ireport te dá mtas ferramentas… Más como vc está començando, na interface do usuário (no caso o seu filtro) trate a SQL e envie para o ireport. É bem como vc está fazendo ai no seu código, más na interface visual vc trata a SQL para colocar a filtragem.

Qdo pegar mais jeito com isso procura utilizar PreparedStatement, também tente colocar suas SQLS fora do seu código. Por exemplo, utilize um arquivo TXT com properties onde vc coloca todas suas consultas separando o banco. Isso é básico para ter um código limpo. Eu por exemplo deixo todas minhas consultas dentro do próprio BD e se precisar alterar as consultas eu não mexo no código…

G

Você conhece algum exemplo aqui no GUJ o qual seria semelhante a minha duvida?

Criado 17 de agosto de 2009
Ultima resposta 18 de ago. de 2009
Respostas 7
Participantes 2