Crosstab no Jasper

3 respostas
G

Oi, bom dia!

alguém de vcs sabe se é possível ter mais de um crosstab em um mesmo relatório?

tentei colocar um crosstab em um grupo, para q fosse impresso qtos registros tivesse desse grupo, mas não funciona.
ele só aparece quando coloco no rodapé do relatorio e mesmo assim mostra soh o crosstab do ultimo registro.

obrigada pela atenção,

gisele.

3 Respostas

faelcavalcanti

Acredito que dependendo dos registros que estão sendo exibidos pelos grupos, possa fazer diferença dos subdatasets, onde há uma sequência na execução dos eventos como before, After [Page, Group, Detail, Column]. Acho que se você sincronizar os dados de forma certa, é possível sim, nunca tentei, mas você pode tentar debugar utilizando um scriplet para simular as situações do seu relatório!!!
:wink:

G

hm… nunca trabalhei com scriplet no jasper, existe algum específico para debugar??

faelcavalcanti:
Acredito que dependendo dos registros que estão sendo exibidos pelos grupos, possa fazer diferença dos subdatasets, onde há uma sequência na execução dos eventos como before, After [Page, Group, Detail, Column]. Acho que se você sincronizar os dados de forma certa, é possível sim, nunca tentei, mas você pode tentar debugar utilizando um scriplet para simular as situações do seu relatório!!!
:wink:

faelcavalcanti

gizi:
hm… nunca trabalhei com scriplet no jasper, existe algum específico para debugar??

faelcavalcanti:
Acredito que dependendo dos registros que estão sendo exibidos pelos grupos, possa fazer diferença dos subdatasets, onde há uma sequência na execução dos eventos como before, After [Page, Group, Detail, Column]. Acho que se você sincronizar os dados de forma certa, é possível sim, nunca tentei, mas você pode tentar debugar utilizando um scriplet para simular as situações do seu relatório!!!
:wink:

Na verdade poderia utilizar desta forma, como segue exemplo uma implementação básica de scriplet.

package gov.tcepe.sisplan.relatorio;

import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;

public class ScripletDebug extends JRDefaultScriptlet {

	public void afterColumnInit() throws JRScriptletException {
		System.out.println("+ afterColumnInit()" );
	}

	public void afterDetailEval() throws JRScriptletException {
		System.out.println("+ afterDetailEval()" );
	}

	public void afterGroupInit(String groupName) throws JRScriptletException {
		System.out.println("+ afterGroupInit(" + groupName + ")" );
	}

	public void afterPageInit() throws JRScriptletException {
		System.out.println("+ afterPageInit()" );
	}

	public void afterReportInit() throws JRScriptletException {
		System.out.println("+ afterReportInit()" );
	}

	public void beforeColumnInit() throws JRScriptletException {
		System.out.println(". beforeColumnInit()" );
	}

	public void beforeDetailEval() throws JRScriptletException {
		System.out.println(". beforeDetailEval()" );
	}

	public void beforeGroupInit(String groupName) throws JRScriptletException {
		System.out.println(". beforeGroupInit(" + groupName + ")" );
	}

	public void beforePageInit() throws JRScriptletException {
		System.out.println(". beforePageInit()" );
	}

	public void beforeReportInit() throws JRScriptletException {
		System.out.println(". beforeReportInit()" );
	}
}

Você precisará passar através de um HashMap, e durante o debug lê certas propriedades e valores no relatório, mas não modificá-los, pois depois de gerado o jasper, não poderá ser modificado a estrutura e o layout do relatório.

Você pode encontrar um exemplo disponível junto com os fontes do jasperReport.

:wink:

Criado 9 de junho de 2006
Ultima resposta 15 de jun. de 2006
Respostas 3
Participantes 2