Olá Pessoal,
Tenho visitado vários Tópicos aqui no Fórum sobre relatórios utilizando iReport e nenhum deles infelizmente deu resultado para minha dúvida.
Gostaria da ajuda de vocês, se alguém puder ajudar ficarei muito agradecida!
Vamos lá...
Já tenho meu relatório que foi criado no iReport, ele está funcionamento corretamente dentro do iReport Designer. Porém quando chamo dele dentro da minha Classe Java, aparece a seguinte mensagem de erro:
[color=red]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
at Relatórios.relOC.
at Principal.MenuPrincipal.jMenuItem10ActionPerformed(MenuPrincipal.java:859)
at Principal.MenuPrincipal.access$3000(MenuPrincipal.java:38)
at Principal.MenuPrincipal$31.actionPerformed(MenuPrincipal.java:528)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)[/color]
Não faço o mínima idéia do que seja isso, estou enviando abaixo código da Classe criada, a SQL que estou passando é a minha query usada no iReport, é grande, mas nela tem tudo o que vai ser utilizado no relatório que é bem extenso tbm. Obrigada pela atenção de vocês! ^^
package Relatorios;
import java.util.HashMap;
import Conexao.ConexaoServicos;
import Principal.Opcoes;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
public class relOC
{
ConexaoServicos con = new ConexaoServicos(); //está é a minha conexão com o banco de dados MySQL
public static int opcao = Opcoes.opcao;
public static int teste = 4; //variavel criada para ser usada como parametro dentro da minha consulta SQL
public relOC()
{
try
{
con.conecta(opcao);
con.executeSQL("SELECT ordem_compra.`id_ordem_compra` AS ordem_compra_id_ordem_compra, ordem_compra.`data_emissao` AS ordem_compra_data_emissao, ordem_compra.`valor_total` AS ordem_compra_valor_total, fornecedor.`Nome_Fantasia` AS fornecedor_Nome_Fantasia, fornecedor.`Endereco` AS fornecedor_Endereco, fornecedor.`Complemento` AS fornecedor_Complemento, fornecedor.`Bairro` AS fornecedor_Bairro, fornecedor.`Cidade` AS fornecedor_Cidade, fornecedor.`CEP` AS fornecedor_CEP, forma_pagamento.`Forma_Pagamento` AS forma_pagamento_Forma_Pagamento, forma_pagamento.`Parcelamento` AS forma_pagamento_Parcelamento, forma_pagamento.`Dias_parcelas` AS forma_pagamento_Dias_parcelas, dados_ordem_compra.`quantidade` AS dados_ordem_compra_quantidade, dados_ordem_compra.`data_entrega` AS dados_ordem_compra_data_entrega, dados_ordem_compra.`valor_unitario` AS dados_ordem_compra_valor_unitario, dados_ordem_compra.`nome_produto` AS dados_ordem_compra_nome_produto, dados_ordem_compra.`valor_total` AS dados_ordem_compra_valor_total, dados_ordem_compra.`id_dados_ordem` AS dados_ordem_compra_id_dados_ordem FROM `ordem_compra` ordem_compra INNER JOIN `fornecedor` fornecedor ON ordem_compra.`fornecedor_id_fornecedor` = fornecedor.`id_fornecedor` INNER JOIN `forma_pagamento` forma_pagamento ON ordem_compra.`forma_pagamento_id_Formas_Pagamento` = forma_pagamento.`id_Formas_Pagamento` INNER JOIN `dados_ordem_compra` dados_ordem_compra ON ordem_compra.`id_ordem_compra` = dados_ordem_compra.`ordem_compra_id_ordem_compra` WHERE ordem_compra.`id_ordem_compra` = '"+teste+"' ORDER BY ordem_compra.`id_ordem_compra` ASC");
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint jasperPrint = JasperFillManager.fillReport("relatorio/relOC.jasper", new HashMap(), jrRS);
JasperViewer.viewReport(jasperPrint, false);
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,"Não foi possivel gerar relatório!"+erro);
}
}
}
Fico aguardando um Help!