iReport-3.7.1 subrelatorio+netbeans

8 respostas
R
Ola não tenho certeza se era aki q eu deveria fazer este topico mas seja o que deus quiser kkk Bom meu problema é o seguinte tenho 1 relatorio principal q chama 6 subrelatorios todos eles funcionam muito bem no iReport-3.7.1 mas quando tento passar para minha classe que o chama da erro. aqui vai minha classe e o erro
package IReport;

import DB.Conexao;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author Eduardo
 *
 **/

public class RelatorioAluno {
    Conexao c=new Conexao();

    public void relUsadosLocalins(){
        try{
            c.conecta();
            c.executarSQL("select*from cliente");
            //JRResultSetDataSource jrRS=new JRResultSetDataSource(c.rs);
            JasperPrint jasperPrint=null;
            try{
                c.executarSQL("SELECT veiculos.v_nome, veiculos.v_marca, veiculos.v_ano, veiculos.v_cor, veiculos.v_placa, veiculos.v_preco, veiculos.v_porta, veiculos.v_combustivel, cliente.nome, cliente.telefoneResidencial, cliente.telefoneCelular FROM cliente INNER JOIN veiculos ON cliente.id = veiculos.id_cliente");
                jasperPrint=JasperFillManager.fillReport(
                        "Ireport/Usados_Jornal/Usados_Jornal_SUB_FIAT.jasper", new HashMap(),c.conn);
            }catch(JRException e){
                JOptionPane.showMessageDialog(null, "Erro JRException na classe: "+Class.forName(null));
                }
            JasperViewer.viewReport(jasperPrint);
        }catch(Exception ex){
            JOptionPane.showMessageDialog(null, "Erro Exception na classe RelatorioAluno: \n" +
                    "Escrever mais alguma coisa sobre o erro aqui: "+ex);
        }

    }
    public static void main(String[] args) {
       RelatorioAluno r=new RelatorioAluno();
       r.relUsadosLocalins();
    }
}
O erro: log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly. net.sf.jasperreports.engine.JRException: Unknown column name : veiculos_nome

vlw desde ja agradeço :D

8 Respostas

J

Não seria pq o relatório tá procurando um campo veiculos_nome e na verdade é v_nome?

R

cara foi mal a demora mas vou mandar um link com meu projeto dai você vai poder ver oq ta dando errado
nem prescisa fazer um db ai no teu pc vou deixa um servidor mysql on até resolvermos esse problema
ta tudo pronto só vai ter que importar os jars do ireport 3.7.1 fora isso ta tudo ok só olhar o codigo fonte da conexão
http://www.megaupload.com/?d=GNSOLMP7

Vlw pela dica mas ja tentei fazer só com field e funciona mas quando boto dois ele da pau(um do veiculo e outro do cliente)

C

Oi, faço parte do Projeto que o DUDU postou aqui no guj, só explicando melhor, ele disponibilizou um LINK http://www.megaupload.com/?d=GNSOLMP7 pra Download do Projeto em NetBeans 6.8, com todo o código fonte, inclusive dentro do projeto tem uma pasta chamada Ireport com todos os relatórios prontos. Não precisa criar o banco de dados porque disponibilizamos um servidor MYSQL bem chubreguinha mãs funciona, e ficará no ar até alguem nos ajudar, tipo o ip da conexão está dentro do pacote DB na classe Conexao.java.
Por favor alguem nos ajude, somos iniciante no assunto, e não estamos conseguindo fazer o projeto continuar, se der certo a parceria posso disponibilizar a quem nos ajudar ou a quem apenas quer aprender a senha de acesso do nosso svn (Tambem conhecido como sistema de controle de versão), assim facilita trabalharmos no projeto a distância t+++ e espero por ajuda thanks…

R

ei veio acho q ta tudo certo no relatorio mas vou dar uma olhada aki valeu

R

:oops: tu tava certo mesmo valeu por esclarecer isto pra mim é q eu tava em cima disto a semanas nunca tinha ensado nisso
kkk vlw até a proxima e tomara que não seja não idiota o meu erro

R
oie é eu de novo agora tenho um outro problema tipo tenho a mesma aplicação q tava com o ireport dano erro e agora eu tenho um problema muito chato nas mãos não importa oq eu faça minha aplicação não salva no db os dados do cliente nem os dos produtos esse é o erro:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Layout.Cliente.jB_SalvarActionPerformed(Cliente.java:1292) at Layout.Cliente.access$200(Cliente.java:35) at Layout.Cliente$4.actionPerformed(Cliente.java:914) 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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) 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)
e essa é minha conexão:
package DB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
 *
 * @author User
 */

public class Conexao {
    private String banco="localins";

    public String getBanco() {
        return banco;
    }
    private String driver="com.mysql.jdbc.Driver";
    //private String url="jdbc:mysql://192.168.10.254:3535/"+banco;
    private String url="jdbc:mysql://187.4.58.188:3535/"+banco;//conseguir programar fora do lab
    //private String url="jdbc:mysql://localhost/localins";//Caso necessite programar em casa em internet
    private String user="guj";
    //private String user="root";//Caso necessite programar em casa em internet
    //private String pass="";//Caso necessite programar em casa em internet
    private String pass="guj";
    private Connection conn;
    public Statement stm;
    public ResultSet rs;

    public Boolean conecta(){
        boolean result = true;
        try{
            Class.forName(driver);
            conn=DriverManager.getConnection(url,user,pass);
            JOptionPane.showMessageDialog(null,"Conectou com sucesso no Banco: "+banco);
        }catch(ClassNotFoundException Driver){
            JOptionPane.showMessageDialog(null, "Não conectou com sucesso"+Driver);
            result=false;
        }catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "Erro na conexão com a seguinte fonte: "+Fonte);
            JOptionPane.showMessageDialog(null, "Verifique na classe conexao se a url está digitada corretamente \n" +
                    "Ou se o Servidor q está o Banca de dados está ligado!!! ");
            result=false;
        }
        return result;
    }
        public void desconecta(){
            boolean result=true;
            try{
                conn.close();
                JOptionPane.showMessageDialog(null, "Banco de dados fechado");
            }catch(SQLException erroSQL){
                JOptionPane.showMessageDialog(null, "Não foi possivel fechar o banco de dados"
                        +erroSQL.getMessage());
                result=false;
            }
        }
        public void executarSQL(String sql){
            try{
                stm=conn.createStatement();
                rs=stm.executeQuery(sql);
            }catch(Exception sqlex){
                JOptionPane.showMessageDialog(null, sqlex.getMessage());                
                JOptionPane.showMessageDialog(null, "Não possivel executar o comando SQL: "+sql);
                
            }
        }
}
se alguem souber a resposta favor postar VLW desde ja
L

Cara nullPointer no seu metodo salvar,posta o metodo ai pra gente da uma olhada.

R
p.setNome(jT_Nome.getText());
        p.setCpf(jT_Cpf.getText());
        p.setRg(jT_Rg.getText());
        //CPFInvalido();
        p.setTel(jT_TelResidencial.getText());
        p.setTelCel(jT_TelCelular.getText());
        p.setEndereco(jT_Endereco.getText());
        p.setEnderecoN(Integer.parseInt(jT_EnderecoN.getText()));
        p.setComplemento(jT_Complemento.getText());
        //p.setNascimento(jT_DataNascimento.getText());
        p.setEmail(jT_Email.getText());
        p.setCidade(jT_Cidade.getText());

        String sqlinsert="insert into cliente(c_nome, c_cpf, c_telefoneResidencial, c_telefoneCelular, c_rg, c_endereco, c_nEndereco, c_complemento, c_email, c_cidade )values( '"+p.getNome()+"','"+p.getCpf()+"','"+p.getTel()+"','"+p.getTelCel()+"','"+p.getRg()+"','"+p.getEndereco()+"','"+p.getEnderecoN()+"','"+p.getComplemento()+"','"+p.getEmail()+"',,'"+p.getCidade()+"')";
               try{
                   c.conecta();
                   c.stm.executeUpdate(sqlinsert);
                   //CPFInvalido();
                   JOptionPane.showMessageDialog(null,"Gravou com sucesso");
               }catch(SQLException ex){
                   JOptionPane.showMessageDialog(null,"Erro ao salvar dados: "+ex);
                   //Logger.getLogger(Professor.class.getName()).log(Level.SEVERE,null,ex);
               }
Bom ta ai meu codigo de salvar passei um tempão revisando ele e não achei nada de errado. kkk desculpa a demora
Criado 10 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 8
Participantes 4