JasperReport + Repetindo campos!

11 respostas
L

Como faço para repetir campos no jasperreport ?? Tipo assim : minha consulta retorna apenas o campo “joao” (uma linha apenas)e eu gostaria que o relatorio imprimi-se joao 10 vezes um abaixo do outro !! !!!

valeu !!

11 Respostas

L

alguem ??

furutani

Eu acho que vc vai ter que criar um DataSource para isso.
http://jasperreports.sourceforge.net/tutorial/index.html#source
http://www.hibernate.org/79.html

L

furutani:
Eu acho que vc vai ter que criar um DataSource para isso.
http://jasperreports.sourceforge.net/tutorial/index.html#source

Na verdade eu já estou criando :

JRResultSetDataSource jr = new JRResultSetDataSource(rs);

O meu problema é q esse jr só possui um registro com uma coluna (Nome). E quando o jasper for gerar o relatorio ele vai impimir apenas uma vez, pois so existe um registro. No caso, ele vai imprimir apenas uma vez o nome da pessoa, por exemplo joao. No entanto, eu gostaria que a partir desse único registro fosse possível gerar varias copias do nome joao:

joao
joao
joao
........

entedeu ??

valeu pela ajuda !!

klarq

Deixa eu perguntas:

To com um problema que quando eu gero uma consulta nunca aparece o primeiro resultado, pq?

J

klarq:
Deixa eu perguntas:
To com um problema que quando eu gero uma consulta nunca aparece o primeiro resultado, pq?

Como assim não aparece o primeiro resultado ?? Esse primeiro resultado seria a primeira tupla ??

Posta aqui o trecho de código para vê onde estar o problema !!

klarq

Eu passo uma consulta e tenho que colocar um registro a mais no começo do RecordSet para que imprima a partir do segundo!!!

Será que é um bug na classe JRResultSetDataSource?

Segue o código:

public void GeraRelatorio(String[] matricula)
	{
		
		String opcoes = ""; 
		for (int i=0; i<matricula.length; i++)
		{
			//se estiver no ultimo registro nao coloca o "or"
			if (matricula.length == matricula.length - 1)
				opcoes = opcoes + "matricula ='" + matricula[i] + "'";
			else
				opcoes = opcoes +  "matricula ='" + matricula[i] + "' or ";
		}

		try {
			JasperDesign design = JasperManager.loadXmlDesign("C:/jakarta-tomcat-5.0.30/webapps/cracha/relatorio/relatorio.jrxml"); 
			JasperReport jr = JasperManager.compileReport(design);
	
			HashMap parameters = new HashMap();
	
			ConectaBanco cb = new ConectaBanco();

			//o primeiro registro nunca imprimi
			ResultSet res = cb.getConsulta("select * from funcionario where matricula = '11700' or " + opcoes);
			
			JRResultSetDataSource jrRS = new JRResultSetDataSource(res);
			JasperPrint impressao = JasperManager.fillReport(jr,parameters,jrRS);

			JasperExportManager.exportReportToPdfFile(impressao, "C:/jakarta-tomcat-5.0.30/webapps/cracha/relatorio/relatorio.pdf");
			
			}
	
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
J

A classe JRResultSetDataSource não possui erro !!! Poste aqui o código do método getConsulta da classe ConectaBanco !!

falou !!

klarq

Eu ja uso esse metodo a muito tempo ele não tem erro! 8)

Mas...

public ResultSet getConsulta(String iSQL)
    {
        ResultSet res = null;
        Statement statement;

        try
        {
            statement = connection.createStatement();
            res = statement.executeQuery(iSQL);
            res.first();
        }catch (SQLException e)
         {
            e.printStackTrace();
            return null;
         }
        return res;
    }

Será que la no iReport não tem nada pra setar? :?:

Valewz

J

Ai está o crime !!! :smiley: Retire essa linha ai em cima, q seu programa funcionará sem nenhum erro !!! :wink:

falou !!!

C

Lindeberg:
furutani:
Eu acho que vc vai ter que criar um DataSource para isso.
http://jasperreports.sourceforge.net/tutorial/index.html#source

Na verdade eu já estou criando :

JRResultSetDataSource jr = new JRResultSetDataSource(rs);

O meu problema é q esse jr só possui um registro com uma coluna (Nome). E quando o jasper for gerar o relatorio ele vai impimir apenas uma vez, pois so existe um registro. No caso, ele vai imprimir apenas uma vez o nome da pessoa, por exemplo joao. No entanto, eu gostaria que a partir desse único registro fosse possível gerar varias copias do nome joao:

joao
joao
joao
........

entedeu ??

valeu pela ajuda !!

Basta você criar no relatório 10 referências ao seu campo nome, colocando um embaixo do outro. É isso que você está querendo?

klarq

javax wrote:

Ai está o crime !!! Retire essa linha ai em cima, q seu programa funcionará sem nenhum erro !!!

falou !!!

O problema persiste!! :cry:

obs: como voce faz para aparecer “Klarq wrote:” na sua mensagem!!! :oops:

Criado 3 de maio de 2005
Ultima resposta 20 de mai. de 2005
Respostas 11
Participantes 5