Duvida com ireport.[RESOLVIDO]

18 respostas
leandro-maanaim

Pessoal eu fiz um relatorio bem simples mesmo, com os seguintes campos. Codigo da Cidade Nome da Cidade | UF
e estou mandando o seguinte sql pra ele.

select cid_codigo,cid_nome,cid_uf from cad_cidades where cid_codigo = "+tf_CidCodigo.getText()+"

e da o seguinte erro.
O documento não tem paginas.
:S

18 Respostas

tinorberto

Faz o teste sem a condição para ver qual o resultado. Pode ser erro na passagem do parâmetro.

leandro-maanaim

Sem a condição ele me manda todas as cidades normal.
o problema é so quando eu uso essa condição.
e quando eu executo la dentro do proprio ireport funciona normalmente.

lordtiago
' "+oldTipoCobranca+" '

no código que vc postou faltou aspas simples. Como fiz acima.

leandro-maanaim

Já esperimentei colocar, mais nao se us asps simples em inteiro.

kenneth

Fala brow,

Suponho que voce esteja jogando essa string para uma variavel…
Se nao, faca isso, e de um print nela…

Da pra voce ver se o sql final esta sendo montado corretamente.

Abraco!

leandro-maanaim

Vixi… Como Assim? nao entendi.

kenneth

Fala brow,

Vc ta chamando o iReport pelo java, nao??
Como vc ta passando essa sql pro iReport?

leandro-maanaim

isso mesmo. Ta lá em cima. select * from cad_cidades where cid_codigo = "+tf_CidCodigo.getText()+"
o que eu nao entendo é que quando eu uso a condição where nao funciona mais se eu nao usar ela funciona normalmente.

Vinny

Suas aspas deve estar no select e não em volta do seu text field

assim

String sql = "select * from cad_cidades where cid_codigo = "+tf_CidCodigo.getText();
leandro-maanaim

Cara nem assim funciona amigo.Sera que é a versao que to usando? minha versao do ireport é a 1.3.1

kenneth

Fala brow,

Posta pra gente ai pelo menos o metodo completo que vc tem
para chamar o iReport…
Acho que fica mais facil pra gente ver o problema.

Valeu.

leandro-maanaim

Essa ai.
Aki eu chamo ele

equipamentos.nomeRelatorio("C:/Arquivos de programas/Controle de Manutenção de Ferramentas/Relatorios/rel_Cidades.jasper");
        equipamentos.rel_Dados_Equipamentos("select * from cad_cidades where cid_codigo = 1 ");

E como Sempre nao ta funcionando

package Relatorios;


import javax.swing.JOptionPane;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import Utilitarios.Conexao;
public class rel_Dados_Equipamentos
{
    Conexao conecta = new Conexao();
    private String relatorio = "";
    public void nomeRelatorio(String relatorio)
    {
        this.relatorio = relatorio;
    }
    public String relatorio()
    {
        return this.relatorio;
    }
    public void rel_Dados_Equipamentos(String sql)
    {
        try
        {

            conecta.conectaBanco();
            conecta.executaSQL(sql);
            if(conecta.resultset.first())
            {
                JOptionPane.showMessageDialog(null,"Pos...");
                JRResultSetDataSource resultsets = new JRResultSetDataSource(conecta.resultset);
                JasperPrint jasperPrint = JasperFillManager.fillReport(relatorio,new HashMap(),resultsets   );
                JasperViewer.viewReport(jasperPrint,false);
            }
            else
                JOptionPane.showMessageDialog(null,"Nao Pos...");
            
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível localizar o relatório desejado.\n"+erro,"Informações do Sistema",JOptionPane.ERROR_MESSAGE);
        }
    }
    public static void main(String args[])
    {
//        rel_Dados_Equipamentos();
    }
}

Sera que eu preciso fazer alguma configuração no ireport nao?

L

pq naum instala a versão iReport-3.0.0, não sei pode ser isso ! eu só uso essa versão e nunca deixo na mão.

leandro-maanaim

Ja instalei mais nao abre S:.

leandro-maanaim

Alguem por favor pode me da uma aluz* ?

kenneth

Fala brow,

Estamos tentando te dar uma luz… :smiley:

Eu costumo usar assim, nas aplicacoes desktop:

HashMap param = new HashMap();
    param.put("sql","<coloca aqui sua sql>");
    InputStream entrada  = getClass().getResourceAsStream("relatorio.jasper");
    JasperReport relatorio = (JasperReport) JRLoader.loadObject(entrada);
    JasperPrint imp = JasperFillManager.fillReport(relatorio,param,conexao);
    JasperViewer ver = new JasperViewer(imp,false);

Ae, dentro do seu relatorio no iReport, voce adiciona um parametro com o nome de “sql” (sem aspas).
E, na sql dele (aquele icone com uma seta dando a volta num banco de dados), vc adiciona isso:

$P!{sql}

Acredito que funciona assim
=]

leandro-maanaim

Cara Felizmente resolvi.

kenneth

Opa
Posta ai o que vc fez pra resolver.

Abraco

Criado 29 de setembro de 2010
Ultima resposta 1 de out. de 2010
Respostas 18
Participantes 6