iReport - cor dinâmica

7 respostas
R

Olá pessoal!

Seguinte, em um relatório que criei preciso colocar uma cor dinamica nas colunas, onde se o valor da coluna for menor que o valor da media calculada no final da coluna a celula mude para uma determinada cor. Já pesquisei em vários locais mas não obtive êxito. Alguém conhece alguma solução?

7 Respostas

A

Você pode criar um quadrado da cor que você quiser ATRÁS da célula que, pelo que entendi, é na banda DETAIL.

Neste quadrado, você seta a expressão “PRINT WHEN EXPRESSION” de acordo com a sua necessidade.

Sendo assim, o quadrado só vai aparecer quando a expressão que você colocou for atendida.

Abraço.

L

Hmm colocar para exibir a cor assim new Boolean( $V{COLUMN_COUNT}.intValue() % 2 == 0 ) funciona direitinho
mais nao sei como coloca o campo por tras… se alguem puder ajudar agradeco =D

nao deixa… valeu achei aqui =] aprendendo a mexer na ferramenta agora vlw ae

A

No caso dele em específico não vai ser o COLUMN_COUNT mas sim o próprio valor da célula né?

Creio que tenha jeito sim.

Não é colocar o campo atrás, é “desenhar” atrás do campo um retângulo preenchido com a cor desejada. Acho que ao clicar com o botão direito em um componente tem a opção “send to back” ou “enviar para trás” para colocar o componente atrás do seu campo.

R

O problema é que já tenho um estilo configurado desse jeito, onde ele muda a cor das linhas impares para melhorar a visualização.
A opção de colocar um quadrado até deu certo, só que ai eu tería que colocar o textfield transparente inutilizando o estilo. Mas valeu pelas dicas galera. Sinto que estou muito proximo de uma solução.

A

Vc pode manter o efeito de seu estilo mas fazendo de outra maneira.

Coloque um retângulo atravessando a linha, setando ele pra aparecer somente nas linhas ímpares (ou pares). Entre esse retângulo e seu txtfield, você coloca o quadrado já mencionado.

Assim, você mantém seu estilo.

R

hmm Agora entendi pessoal, muito obrigado mesmo. Estou com uma semana trabalhando com iReport, e ainda não me familiarizei com expressões. Se alguem puder dar uma olhada e ver qual o erro na minha expressão…

new Boolean( $F{tbaux_rel_iteracoes_200902}.intValue() < $V{SUM_tbaux_rel_iteracoes_200902_1} / $V{Contador} == 0 )

vlw!

R

Consegui!!!

expressão que deu certo:

A expressão funcionou mas não sei se essa sería a melhor forma de escrevê-la, se alguém souber uma melhor…

Muito obrigado pessoal.

Criado 6 de outubro de 2009
Ultima resposta 7 de out. de 2009
Respostas 7
Participantes 3