Duvida com ireport.[RESOLVIDO]

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

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

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.

' "+oldTipoCobranca+" '

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

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

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!

Vixi… Como Assim? nao entendi.

Fala brow,

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

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.

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();

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

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.

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?

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.

Ja instalei mais nao abre S:.

Alguem por favor pode me da uma aluz* ?

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
=]

Cara Felizmente resolvi.

Opa
Posta ai o que vc fez pra resolver.

Abraco