Arquivos da categoria: Jasper

Usando parâmetros globais em uma crosstable usando subselect

No IReport, quando criamos uma crosstable e usamos uma subquery, os dados da query principal e os parâmetros do relatório não estarão disponíveis, desde que você especifique. Para acessar estes parâmetros globais, depois de inserir a crosstable no relatório, clique com o botão direito e vá em Crosstable Properties:

Agora marque “Use a dataset to fill the crosstable”.

Em Dataset Run, selecione a subquery que irá ser usada.

Aparecerá a aba Parameters Map Exp

Digite new HashMap($P{REPORT_PARAMETERS_MAP})

Os parâmetros do relatório agora estárão disponíveis à subquery.

Maior controle na janela de um relatório Jasper

Recentemente tive problemas ao usar a classe JasperViewer com Swing.
Com essa classe, que herda de um JFrame, eu não tinha controle modal
da janela do relatório. Isso resultava em problemas quando o usuário
alternava da janela do relatório para a aplicação. Uma forma de resolver
foi usando, ao invés do JasperViewer, o JRViewer(JPanel) e adicionando a
um JDialog.

Ex:

JasperPrint impressao = JasperManager.fillReport(
getClass().getResourceAsStream("jasper/ListaClientes.jasper"),params,con);
JRViewer jv = new JRViewer(impressao);
//Agora sim é modal!
JDialog reportDialog = new JDialog(new javax.swing.JFrame(),true);
//Posiciona no centro, use setSize() para ajustar o tamanho antes!
j.setLocationRelativeTo(null);
//Adiciona o JRViewer a janela
j.add(jv);
j.show();