iReport - Mudar propriedade de um componente

Possuo no meu relatório um esquema de tabelas que tem borda de 2px (são 4 componentes de imagem e 1 de texto) mas pode ocorrer de não ter nenhuma foto a ser exibida neste relatório.

neste caso gostaria que os componentes (image e static text) que não tem foto (ou texto) percam a borda que eu atribui como padrão para eles.

É possivel mudar a propriedade dos componentes em tempo de execução no java ou em alguma estrutura condicional dentro do iReport?

Olha mano, no Java você pode alterar o XML na mão e compilar antes de mostrar o relatório…
Não adianta a propriedade “Print When Null”?

o lance é que os componentes são impressos de qualquer forma.

quando não há imagem eu passo uma imagem transparente padrão de 50x50 que está em fill.

então eu só queria que as bordas dos componentes ficassem 0 quando eu exibisse essa imagem transparente ao invés do numero que eu defini.

E não da pra passar um null em vez da imagem transparente? hehe
Acho que só alterando o xml mesmo mano =/

não! ele fica exigindo uma imagem (causa uma exception se eu passar null, ou vazio).

e mesmo assim, isso server apenas para o conteudo do componente e não do componente em si.

o que eu quero é remover a borda do componente!

não faço idéia de como ainda! kkk

tem uma propriedade que chama “Print When Expression”, vc pode fazer uma verificação !$F{campoImagem}.equals(imagem50x50)

Só imprime o campo se o campo que recebe sua imagem for diferente da imagem 50x50

tenta ai.

Funcionou magicamente!

!$F{caminhoFoto3}.contains("tranparencia.png")

então coloquei em todos os componentes necessários.

mas, tentei fazer isto num componente de texto:

(!$F{caminhoFoto1}.contains("tranparencia.png") && !$F{caminhoFoto2}.contains("tranparencia.png") && !$F{caminhoFoto3}.contains("tranparencia.png") && !$F{caminhoFoto4}.contains("tranparencia.png"))

e o tal componente (quando todos os componentes de imagem exibirem a tranparencia) o seu texto (que é um static text) também deveria sumir! por lógica.

mas ele aparece apenas se todo mundo for diferente daquilo ali em cima. se um dos componentes tiver transparencia o texto some!

como trabalhoc om JRBean fiz que o StaticText virasse um compoente Bean que será preenchido na lista que eu passo do java pra ele. dessa forma quando detecto que todo mundo veio “nulo” eu seto o texto daquele componente como nulo também!

enfim, não é o melhor jeito mas resolveu!

só você tirar o “!” no começo, vc ta invertendo o resultado com “!”, por isso ele só aparece se todos forem diferente de transparencia.jpg

=O caraca! que bisonho! kkk inverti atoa!

o texto tem que desaparecer quando todos forem transparentes! dei mole!

enfim, já resolvi do outro modo! não quero mais compilar jasper! =P mas valeu pelo alerta!

hehe, blz