Erro em expressão do iReport

4 respostas
F

Alguém sabe o que tem de errado nesta expressão do iReport:

$F{con_tipo} == “CRÉDITO” ? “CRE” : “DEB”

Uso ela no iReport, mas independente do valor do campo con_tipo, ela sempre retorna DEB.

O que eu quero é que quando o valor de con_tipo for igual a CRÉDITO retorne CRED, e quando for igual a DÉBITO, retorne DEB

4 Respostas

brlima

O correto é utilizar o .equals() para comprar Strings, assim como na linguagem Java.

Ficaria algo assim:

$F{con_tipo}.equals("CRÉDITO") ? "CRE" : "DEB"
F

Bahh, que erro primário.

Valew brlima, me ajudou um monte.

Aproveitando o ensejo, você sabe me dizer como passar parâmetros para o report (do sistema para o report).

O código que eu uso p/ gerar o report eh basicamente este:

nomeRelatorio="ListaSimplesDeProdutos.jasper";
        setSql("select pro_codigo, pro_nome, pro_preco_venda, pro_unidade_medida, pro_quantidade from produto");
        iniciar();
        try {
            rs = stmt.executeQuery(getSql());
            jrRS = new JRResultSetDataSource( rs );
            Map parameters = new HashMap();
            impressao = JasperFillManager.fillReport(pathRelatorios+nomeRelatorio, parameters, jrRS);
            JasperViewer jrviewer = new JasperViewer(impressao, false);
            jrviewer.viewReport(impressao, false);
        } catch (JRException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        fechar();

Obrigado

brlima

Vc praticamente deixou preparado para passar.
É só carregar os parametros:

Map parameters = new HashMap();

String str = "ABC"; 
parameters.put(
                    "TIPO_ITEM", // Nome do $P{}
                    str);  // valor

E aí é só passar (o que vc já faz) para o report no fill.

F

Cara, muito obrigado, jah me ajudou um monte, mas estou fazendo os primeiros relatórios com o iReport e tenho mais umas dúvidas, se vc puder, e tiver tempo, seguem elas:

  1. como capturo estes parâmetros lá no report (no editor do iReport)?
    tentei $P{NOME_DO_PARAMETRO}, mas aí não compila.

  2. preciso fazer um somatório, consigo fazer, mas eu preciso que ele obedeça a uma condição. Tipo tenho na tabela ‘tipo’ e ‘valor’, quero que de acordo com o tipo ele some em uma ou outra variável:
    Se for crédito soma em uma, se for débito soma em outra.

Desde já agradeço sua atenção.

Criado 3 de janeiro de 2007
Ultima resposta 4 de jan. de 2007
Respostas 4
Participantes 2