[RESOLVIDO] EDIT: Passar parâmetro de conexão para o SubRelatório

3 respostas
C

Olá pessoal. Boa tarde.
Tô quebrando a cabeça aqui e não consigo achar uma solução.

Estou montando um relatório com 2 Crosstabs, cada um com uma tabela diferente.

O 1º Crosstab está ligado a conexão principal do relatório.
Para o 2º Crosstab, crei um novo Dataset.

Como faço para passar a query sql para o Dataset, responsável pelo Crosstab 2?

3 Respostas

C

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());
	}
}
C

Poxa, ainda estou tentando e nada de dar certo.
Qualquer ajuda é bem vinda.

:smiley:

C

Pessoal, consegui resolver meu problema.
Resolvi sem aprender como se faz para passar múltiplas conexões para o Jasper. :?

Bom, mas isso é o de menos, o importantes é que está funcionando. :stuck_out_tongue:

Resolvi fazendo um SELECT “gigantão” entre as duas tabelas.
O resto, deixa para uma próxima.

Abraços!!!

Criado 26 de dezembro de 2010
Ultima resposta 27 de dez. de 2010
Respostas 3
Participantes 1