Pessoal,
Resolvi usar um SubRelatório ao invés da 2ª Crosstab.
Porém, me deparei com outro probleminha.
Não sei como faço para passar o parâmetro REPORT_CONNECTION para o subRelatório.
O relatório funcionar legal, porém, o subrelatório não aparece e dá o seguinte erro:
[color=red]net.sf.jasperreports.engine.query.JRJdbcQueryExecuter
WARNING: The supplied java.sql.Connection object is null.[/color]
O SubRelatório faz o SELECT em outra tabela.
Código do meu botão imprimir:
Connection conexao = null;
Statement homologa = null;
ResultSet resultado = null;
frmBoletimEscolar.setCursor(Cursor
.getPredefinedCursor(Cursor.WAIT_CURSOR));
try {
Class.forName("org.gjt.mm.mysql.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://" + ip
+ ":" + porta + "/" + nomeBD, usuarioBD, senhaBD);
homologa = conexao.createStatement();
// Principal
resultado = homologa
.executeQuery("SELECT * FROM Rendimentos WHERE Matricula_idMatricula = "
+ matriculaSelecionada);
JRResultSetDataSource dataSourcePrincipal= new JRResultSetDataSource(
resultado);
@SuppressWarnings("rawtypes")
Map parametros = new HashMap();
parametros.put("IMAGEM_BRASAO", caminhoBrasao);
parametros.put("NOME_BRASAO", nomeBrasao);
parametros.put("SUBREPORT_DIR",
System.getProperty("user.dir") + "/Relatorios/");
JasperPrint impressaoBoletim = JasperFillManager
.fillReport(System.getProperty("user.dir")
+ "/Relatorios/Boletim.jasper",
parametros,
dataSourcePrincipal);
JasperViewer viewerBoletim = new JasperViewer(impressaoBoletim,
false);
viewerBoletim.setVisible(true);
} catch (Exception e1) {
MsgBox.showMsg(e.toString(), e.hashCode());
} finally {
frmBoletimEscolar.setCursor(Cursor
.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
try {
resultado.close();
homologa.close();
conexao.close();
} catch (SQLException e1) {
MsgBox.showMsg(e1.toString(), e1.getErrorCode());
}
}