Problemas com Versão Ireport[Resolvido]

8 respostas
M

Olá estou com problemas na geração de um relatorio no Ireport!
Ele esta apresentando o seguinte erro:
Estou começando agora com Java!
Obrigado!

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:283) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:327) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:263) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2026) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeader(JRVerticalFiller.java:618) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillGroupHeaders(JRVerticalFiller.java:540) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:267) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:942) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247) at reports.ReportClass.generateReport(ReportClass.java:69) at ui.MainWindow.geraRelatorio(MainWindow.java:1996) at ui.MainWindow$26.actionPerformed(MainWindow.java:1963) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

8 Respostas

E

O que há nessa linha?

Com certeza você está tentando realizar alguma operação em cima de um objeto nulo. Só dessa forma que NPEs acontecem

M

Linha 69

E

[quote=marcelowender]Linha 69

tente assim

e confira se os objetos “parametros” e “c” não estão nulos

M

Eu acho que “o objeto parametros” está nulo vou dar uma olhada aqui
dou retorno assim que conseguir obrigado

M

Ow não consegui resolver esse problema :cry: oq acontece é o seguinte
eu tinha alguns relatorios antigos e fizemos uma reformulação desses relatorios apenas no layout dele, só que agora depois de refazermos o layout ele não que rodar nem por reza
acho que eu devo estar esquecendo de alguma configuração no relatorio mas não faço a menor ideia do que seja??

A classe que ta dando pau é essa ae!

package reports;

import java.awt.Toolkit;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRPropertiesMap;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import db.Connect;

public class ReportClass {

	private Connect con;
	private String dataSource;
	
	public ReportClass(){
		con = new Connect();
		dataSource = "DSTotalRH";
	}
	
	public void generateReport(boolean patrocinadora, String path, String nomeArquivo, int tipoRemuneracao, int codigoPesquisa, String codigoEmpresa, boolean exibirSalarios){
		Connection c = con.getConnection(dataSource);		
		Map parametros = new HashMap();
	
		parametros.put("SUBREPORT_DIR", "src\\reports\\Raiz\\");
		parametros.put("PICTURE_DIR", "src\\reports\\Raiz\\");
		parametros.put("COD_PESQ", new Integer(codigoPesquisa));
		parametros.put("COD_PARTICIPANTE", codigoEmpresa);
		if (patrocinadora){
			parametros.put("SUBRPT_EMPRESAS","Participantes Patrocinadora.jasper");
		}
		else{
			parametros.put("SUBRPT_EMPRESAS","Participantes Participante.jasper");
		}
		if(exibirSalarios){
			parametros.put("SUBREPORT_SALARIOS", "src\\reports\\Raiz\\RHSubreport.jasper");
		}
		else{
			parametros.put("SUBREPORT_SALARIOS", "src\\reports\\Raiz\\RHSubreportBlank.jasper");
		}

		String pathAnalitico;
		String pathConsolidado;
		String pathConsolidadoTotal;
		
		
		JasperPrint impressao;
		JasperPrint impressaoConsolidado;
		System.out.println(JRPropertiesMap.class.getPackage().getImplementationVersion());
		try {
				if (tipoRemuneracao == 2){
					pathAnalitico = path + "Analitico_Rem_Total_" + nomeArquivo.replace(" ", "_") + ".pdf";
					pathConsolidado = path + "Consolidado_Rem_Total_" + nomeArquivo.replace(" ", "_") + ".pdf";
					impressao = JasperFillManager.fillReport("src\\reports\\Raiz\\Analitico Total.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressao, pathAnalitico);
				
					impressaoConsolidado = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Total.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressaoConsolidado, pathConsolidado);
					Runtime.getRuntime().exec("cmd.exe /C " + pathAnalitico);
					Runtime.getRuntime().exec("cmd.exe /C " + pathConsolidado);	
				}
				else if (tipoRemuneracao == 1){
					pathAnalitico = path + "Analitico_Rem_Nominal_" + nomeArquivo.replace(" ", "_") + ".pdf";
					pathConsolidado = path + "Consolidado_Rem_Nomimal_" + nomeArquivo.replace(" ", "_") + ".pdf";				
					impressao = JasperFillManager.fillReport("src\\reports\\Raiz\\Analitico Nominal.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressao, pathAnalitico);
					impressaoConsolidado = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Nominal.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressaoConsolidado, pathConsolidado);
					Runtime.getRuntime().exec("cmd.exe /C " + pathAnalitico);
					Runtime.getRuntime().exec("cmd.exe /C " + pathConsolidado);				
				}
				else{
					pathAnalitico = path + "Analitico_Rem_Nominal_e_Total_" + nomeArquivo.replace(" ", "_") + ".pdf";
					pathConsolidado = path + "Consolidado_Rem_Nominal_" + nomeArquivo.replace(" ", "_") + ".pdf";
					pathConsolidadoTotal = path + "Consolidado_Rem_Total_" + nomeArquivo.replace(" ", "_") + ".pdf";
					impressao = JasperFillManager.fillReport("src\\reports\\Raiz\\Analitico.jasper", parametros, c);
					
					JasperManager.printReportToPdfFile(impressao, pathAnalitico);
					impressaoConsolidado = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Nominal.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressaoConsolidado, pathConsolidado);
					impressaoConsolidado = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Total.jasper", parametros, c);
					JasperManager.printReportToPdfFile(impressaoConsolidado, pathConsolidadoTotal);
					Runtime.getRuntime().exec("cmd.exe /C " + pathAnalitico);
					Runtime.getRuntime().exec("cmd.exe /C " + pathConsolidado);
					Runtime.getRuntime().exec("cmd.exe /C " + pathConsolidadoTotal);
				}
				
				//Excel
				JasperPrint impressaoConsolidadoXLS = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Nominal Excel.jasper", parametros, c);
				JasperPrint impressaoConsolidadoVariavelXLS = JasperFillManager.fillReport("src\\reports\\Raiz\\Consolidado Total Excel.jasper", parametros, c);
	
				
				JasperViewer.viewReport(impressaoConsolidadoXLS);
				JasperViewer.viewReport(impressaoConsolidadoVariavelXLS);

		} catch (JRException e) {

			e.printStackTrace();
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void viewReport(){
		Connection c = con.getConnection(dataSource);		
		Map parametros = new HashMap();
		parametros.put("SUBREPORT_DIR", "src\\reports\\Raiz\\");
		parametros.put("PICTURE_DIR", "src\\reports\\Raiz\\");

		JasperPrint impressao;
		try {
			impressao = JasperFillManager.fillReport("src\\reports\\Raiz\\Analitico Nominal.jasper", parametros, c);
			//Cria o arquivo
			JasperViewer.viewReport(impressao);
		} catch (JRException e) {

			e.printStackTrace();
		}
	}
	

}
P

Bom dia! você já deu uma olhada na versão do ireport que está utilizando? a versão 4.7.0 está bem estável.

B

Não acredito que o fato do arquivo .jasper não ser encontrado tenha relação com a versão do iReport.

Marcelo, como está a estrutura de pastas do seu projeto? A partir da pasta src, qual caminho ele faz até chegar no Analitico Total.jasper?

Você consegue se certificar de que a conexão com o banco está sendo realizada com sucesso?

M

Olá Pessoal obrigado a todos que contribuiram descobri qual era o erro aqui!
Eu havia rodado os relatorios no ireport 4.7 e estava utilizando os plugins do 3.6 e tbm importei os jar’s do groovy-binary-2.0.5 depois disso funcionou normal!
Obigado a todos novamente!

Criado 19 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 8
Participantes 4