Ajuda com Ireport + varias paginas

2 respostas
D

Bom dia…

Estou tentando gerar um relatorio de Darfs/boleto Dinamico usando o ireport mas nao encontro uma maneira…

1 - tenho o relatorio pronto na tela… mas preciso que ele imprima de acordo com o numero de clientes…

exemplo… 3 clientes… 3 Darfs/boleto…

no momento so consigo imprimir a darf que esta na tela…

tem como eu fazer aparecer as darfs dependendo do numero de clientes??

Obrigado!!

2 Respostas

rdmardegam

Você pode ter um subrelatorio que contera as darfs. E esse subrelatorio sera gerado 3, 4, 5 veze dependendo do número de clientes.

Ou

Voce pode concatenar os pdfs, mandando uma lista de JasperPrints com a quantidade de pdfs a serem gerados:

public static byte[] concatenaPdf(Collection<JasperPrint> jasperList) throws JRException {
		  
		ByteArrayOutputStream out  = new ByteArrayOutputStream();
		
		JRPdfExporter exporter = new JRPdfExporter();
        exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperList);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
        exporter.exportReport();
		
        return out.toByteArray();
	}
D

Opa.. com certeza vou fazer isso.. mas sera que pode me dar uma outra ajuda?

como eu crio essa Lista de Jasper Print??

tipo..ele vai me retornar um resultSet com todas linhas da consulta..

mas cada linha dessa consulta tem que ser jogado dentro de um jasper print e em seguida na lista de jasper prints..

vc pode me dizer como fazer isso??

segue meu codigo

//implementa&#65533;&#65533;o da interface JRDataSource para DataSource ResultSet
		//JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
                
		//executa o relat&#65533;rio
		Map parametros = new HashMap();
                
                 while (rs.next()) 
                   {  
                    
                     parametros.put("cpf_cnpj", rs.getString("cpf_cnpj"));  
                   //  parametros.put("descricao", rs.getString("DSC_BANCO"));  
                    
                   }  
                
                
		JasperPrint impressao = JasperFillManager.fillReport( relatorio , parametros);

		//exibe o resultado
		JasperViewer viewer = new JasperViewer( impressao , false);

                viewer.setSize(910,670);
		viewer.show();

Obrigado

Criado 15 de junho de 2011
Ultima resposta 16 de jun. de 2011
Respostas 2
Participantes 2