Pessoal, tenho um relatório de fluxo de caixa onde tempo um campo “tipo” do tipo inteiro (0=crédito,1=Débito), como faço para na impressão ao invez de sair 0 ou 1 sair “crédito” ou “débito”?
Eu tava fazendo isso agora há pouco…
$F{tipo} == 1 ? "Débito" : "Crédito"
Vlw cara
Esta dando erro:
Incompatible operand types Integer and int
Muda a variavel tipo para String…
Não existe uma outra forma sem ter que alterar o tipo do campo no banco?
Bom dia,
Dentro do próprio IReport você pode converter os tipos de dados, veja o tipo no banco e compare na tela. Caso precise converter estou postando uns exemplos de conversão de inteiros para string e string para inteiro e o tipo de comparacao para fazer o que você precisa.
String a = "teste";
Integer b = 123;
String c = String.valueOf(b); // convertendo inteiro para string
Integer d = Integer.parseInt(a); // convertendo string para inteiro
if (c.equals("teste")) {
// comparando strings
}
if (d == 123) {
// comparando inteiros
}
Mesmo o campo do ireport sendo inteiro?
Pelo que entendi, pelo erro que mencionou, voce esta comparando tipos de dados diferentes, precisa converter para o mesmo tipo de dados para pode compara-los.
Oque ta estranho é que no banco estou usando um tipo inteiro, no ireport estou fazendo a comparação de um valor inteiro também, mesmo assim não ta rodando
Então assim deve funcionar
$F{tipo}.intVaule() == 1 ? "Débito" : "Crédito"
Mesma coisa, só que agora diz que o campo não pode receber um valor string
nunca tive problemas com comparação de numeros mas
a saída desse campo não é int? acho que o problema está aí.
converta a saida dele pra string. e faça a comparação.
você pode usar
tipo.equals(1) ? "" : ""
nessa comparação
[quote=samirrolemberg]nunca tive problemas com comparação de numeros mas
a saída desse campo não é int? acho que o problema está aí.
converta a saida dele pra string. e faça a comparação.
você pode usar
tipo.equals(1) ? "" : ""
nessa comparação[/quote]
Vlw ae, me ajudou muito.