Alterando o valor de um capo no relatório

10 respostas
warley

Bom dia,

pessoal eu estou montando alguns relatórios e eu estou com um probleminha que é o seguinte:

existem alguns campos de uma tabel do meu banco que contém alguns valores nulos, quando eu monto um relatório está aparecendo NULL para os usuários!

Como eu faço para mudar este valor, isto é, para eu colocar uma condição do tipo:

if(campo == null) mostrar "" else mostra o valor

Muito obrigado!

10 Respostas

TedLoprao

Mas tu tá montando os relatórios a mão ou usando algo tipo o Jasper ou outro qualquer???

warley

Para montar eu uso o IReport e depois de pronto eu uso nas minha aplicações o Jasper.

Vc poderia me mostrar como eu mudo o valor do campo no Ireport mesmo?

Valeu

R

faz assim ó:

campo == null ? "" : campo

deve funcionar…

falow

warley

No IReport eu passo um valor da coluna da tabela para um TextField usando $F{NomedoCampo}!

Como eu coloco a condição neste caso?

Obrigado!

TedLoprao

Se estiver imprimindo em um textField, no Ireport entre nas propriedades do mesmo, na aba Text Field tem um checkbox Blank when null… Acho q resolve seu problema!!!

Se usar jasper direto coloque no xml na tag textfield a propriedade isBlankWhenNull=“true”…

Fallow

TedLoprao

Quanto a outra pergunta, vc pode fazer o seguinte:

$F{FIELD} == null ? “” : $F{FIELD}

Pronto!!!

Fallow

warley

OK TedLoprao, mas ainda tem um problema que é o seguinte:

Eu tenho uma tabela no meu banco chamada produto e este poduto pode está atívo ou inativo. Na tabela produto eu armazemo ‘A’ para produtos ativos e ‘I’ para produtos Inativo.

quando eu monto o relatório eu gostaria que aparecesse o texto Ativo ou Inativo ou invés de A ou I.

Para isto eu tenho que fazer compações do tipo:

if(NomedoCampo.equals("A")) $F{"Ativo"} esle $F("Inativo")

Vc sabe me dizer como eu faço isto!

Muito obrigado!

warley

Valeu velho, mas eu consegui com fazer com sua explicação veja:

$F{indsitcen} == "A"? "Ativo" : "Inativo"

O engraçado é que ele usa ‘==’ para compara String!

Valeu Brother :smiley:

warley

Não velho deu errado!!!

ele usa equals para compara!!!

Veja agora o certo:

$F{indsitcen}.equals("A")? "Ativo":"Inativo"

Valeueueueueueu!!!

TedLoprao

É isso ai, vc pode usar os métodos dos objetos normalmente, como se estivesse programando!!!

Fallow

Criado 20 de julho de 2004
Ultima resposta 20 de jul. de 2004
Respostas 10
Participantes 3