Ajuda com relatório iReport

13 respostas
Luciano_Lopes

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”?

13 Respostas

A

Eu tava fazendo isso agora há pouco…

$F{tipo} == 1 ? "Débito" : "Crédito"
Luciano_Lopes

Vlw cara :smiley:

Luciano_Lopes

Esta dando erro:

Incompatible operand types Integer and int

mfidelis

Muda a variavel tipo para String…

Luciano_Lopes

Não existe uma outra forma sem ter que alterar o tipo do campo no banco?

R

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
	}
Luciano_Lopes

Mesmo o campo do ireport sendo inteiro?

R

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.

Luciano_Lopes

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

A

Então assim deve funcionar

$F{tipo}.intVaule() == 1 ? "Débito" : "Crédito"
Luciano_Lopes

Mesma coisa, só que agora diz que o campo não pode receber um valor string

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

jeffev

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

Vlw ae, me ajudou muito.

Criado 18 de maio de 2012
Ultima resposta 5 de out. de 2012
Respostas 13
Participantes 6