Acha o jasper mas não exibe no jar

11 respostas
dudu_sps

Bom Gente to criando esse Topico aqui.. pq quis entrar no outro topico mas acabou confundindo o topico do nosso amigo

mas.. pra não confundir aquele topico... criei esse
desculpem os administradores e usuarios do GUJ

o meu problema é o seguinte.. eu to tentando conseguir funcionar o jasper no meu arquivo jar

mas ele acha o jasper.. apenas não exibe. pq se eu renomear o jasper. ele acusa que está vazio, e quando eu deixo com o nome normal ele não aparece nada

queria saber como faz pra arrumar

segue meu codigo que chama o jasper
public static void conectar() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/estoque", "root", "");
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    
	@SuppressWarnings("unchecked")
	public JasperPrint gerarEmpresa() {   
		ManipulaValor  mv = new ManipulaValor();
		ManipulaTime mt = new ManipulaTime();
        JasperPrint rel = null;   
        try   
        {   
        	conectar();
        	
        	Extenso ex = new Extenso(mv.formataValorduasCasas(txt_valor.getText()));
        	
	        Map map = new HashMap(); 
	        map.put("NOME_EMPRESA", 1); 
	        map.put("VALOR", ex.toMonetario().toUpperCase()); 
	        map.put("NUM_DOC", txt_doc.getText().toString().toUpperCase());  
	        map.put("DATA_VENC", txt_data_venc.getText().toString()); 
	        map.put("RECEBEDOR", txt_recebedor.getText().toString().toUpperCase()); 
	        map.put("ENDERECO_FORNECEDOR", txt_endereco_forn.getText().toString().toUpperCase()); 
	        map.put("OBSERVACAO", txt_obs.getText().toString().toUpperCase()); 
	        map.put("NOME_FORNECEDOR", txt_fornecedor.getText().toString().toUpperCase()); 
	        map.put("DADOS_EXTRAS", txt_dados_extras.getText().toString().toUpperCase());
	        map.put("DATA_V", mt.convertStringToDate(txt_data_rec.getText())); 
	        rel = JasperFillManager.fillReport("Relatorio_recibo_avulso.jasper", map, conn);
	            
        }   
        catch (JRException e) {   
            JOptionPane.showMessageDialog(null, "Erro: "+e);
            e.printStackTrace();   
        }   
           
        return rel;   
    }

e o evento do botão é esse

public void actionPerformed(java.awt.event.ActionEvent e) {
					try {
						if(!verifica()){
							
						}else{
							JasperViewer.viewReport(gerarEmpresa(), false);
						}
					} catch (ParseException e1) {
						txt_fornecedor.requestFocus();
						JOptionPane.showMessageDialog(null, "Erro ao Verificar os campos! "+e1);
					}
				}
			});

se alguem ja passou por esse problemaa

no netbeans eu ja coloquei todos os jars do ireport e jasper..
e no eclipse eu coloquei os arquivos no classpath do manifest.mf

sinceramente não sei qual é o erro

e tambem quando eu mudo o nome do jasper para saber se realmente não tava achando o arquivo
ele acusa que não achou o arquivo e abre a janela do jasper sem nada.. apenas a janelaa

11 Respostas

kdoigor

talves ajude…
http://www.guj.com.br/posts/list/76780.java#405257

viniciusfaleiro

Seu relatório existe… soh não tá visivel!! … hehehehe

JasperViewer viewer = new JasperViewer(impressao, false);
viewer.setVisible(true)
dudu_sps

kdoigor a classe que voce postou no outro topico tbm deu erro

e viniciusfaleiro… não é pq não ta visivel não… coloquei isso ai… e tbm não funcionou

viniciusfaleiro

Já aconteceu comigo de irem parametros vazios… dai ele não acha nada na consulta e náo abre… Verifica isso… se todos os parametros criticos estão realmente sendo enviados.

dudu_sps

Óh.. vo postar o Codigo de um outro relatório que tento abrir e não funciona

creio que não está indo parametros vazios... pq no eclipse rodando la funciona
apenas no jar que não funciona

public void actionPerformed(java.awt.event.ActionEvent e) {
					table.requestFocus();
					JasperViewer jv = new JasperViewer(gerarEmpresa(), false);
                    jv.setVisible(true);
                    jv.setTitle("Relatório");
                    jv.setExtendedState(jv.MAXIMIZED_BOTH);
                    jv.setDefaultCloseOperation(jv.DISPOSE_ON_CLOSE);
				}
public static JasperPrint gerarEmpresa() {   
        JasperPrint rel = null;   
        try   
        {   
        	conectar();
	        Map map = new HashMap();  
	        
	        map.put("data", data()+" and "+pago()+" and "+conta()+" and moviment_conta_pagar.CANCELADO = 'N'");
	        map.put("SQ",dat()); 
	        JOptionPane.showMessageDialog(null, saldo()+" pago = "+pago()+" conta = "+conta()+" data = "+data());
	        map.put("saldo",saldo());
	        rel = JasperFillManager.fillReport("Relatorio_movimentacao.jasper", map, conn);
	            //JOptionPane.showMessageDialog(null, conta()+" - "+pago()+" - "+data());
        }   
        catch (JRException e) {   
            JOptionPane.showMessageDialog(null, "Erro: "+e);
            e.printStackTrace();   
        }   
           
        return rel;   
    }

como voce poder ver.. tem um JOptionPane ali pra mostrar como esta indo os parametros e ja testei todos e ta funcionando certinhoo

o unico problema é que não funciona no jasper

ja mechi no manifest.mf

utilizo ireport 3.0

quais são os jar que são necessarios para rodar no jar isso ai
pq só pode ser issoo... e eu ja coloquei tudo aqueles jar do jasper.. mais sei la neh.. as vezes pode ser algo do tipo

viniciusfaleiro

Más é estranho… Não tem nenhum StackTrace? Pq se falta algo ou ta com problema sempre tem StackTrace do jasper… se não tiver é problema de consulta errada e tal… não tem mesmo?

dudu_sps

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

viniciusfaleiro

É rapaiz. Acho que é bem o que vc mesmo já imaginava. Algum jar faltando…

Da uma olhada no site do jasper e ve também as dependencias dele… O que eu faço aqui pra náo ter problema na hora de gerar arquivos excel… pdf e tal… eu coloco toda lib que ta dentro da pasta do Ireport no meu Lib do meu projeto…

http://javafree.uol.com.br/topic-862846-IReport-Nao-consigo-abrir-o-relatorio-depois-de-compilar.html

dudu_sps

Cara… valeu pela ajuda… de verdade mesmoooo
uashasuhsauashuh

era o negocio mais tonto de todos que eu poderia imaginar
sab aquelas coisas obvias… mas parece que agente fika cego por um tempoo
mas tem que apanha pra aprende nehh

eu coloquei no meu manifest.mf todo os jar… soh que eu fiz assim eu ia la na pasta aperta F2 e copiava o nome e colava la no manifest

dai eu esqueci de colocar .jar depois

é pracabaa neh
mas ainda Bem que funcionou

desculpa ai a tremenda bobeira(burrice) e valeu pela ajuda…!

dudu_sps

pra enviar pra outra maquina que não tem o ireport instalado … necessita do que

pq no pc que eu to rodando aqui… ta funcionando belezinha

e no outro pc…(terminal) ele aparece “Relatório sem Pagina”

o que precisa será?

viniciusfaleiro

Geralmente isso acontece quando n axa nenhum registro… vc não ta apontando seu servidor do BD pra localhost não?

Criado 23 de dezembro de 2009
Ultima resposta 28 de dez. de 2009
Respostas 11
Participantes 3