Relatório zebrado no IREPORT

Ola pessoal to precisando de uma ajuda…

Alguem sabe como criar um relatório zebrado com ireport ? tipo assim, eu precisaria mudar a cor dos retangulos que compoem uma linha a cada registro do datasource…

se alguem puder me ajudar… agradeço.

falow t+

Ola,

uma solução que adotamos aqui, seria você criar dois retângulos de fundo com cores diferentes atrás dos seus campos Field e colocar uma fórmula no Print When Expression, na propriedade deles.

Algo do tipo, a quantidade de linhas retornadas da sua consulta divida por 2, se retonar 0 seria de uma cor, senão de outra.

A fórmula seria algo do tipo:
($P{QT_REG} / 2 ) == 0 ? Boolean.TRUE : Boolean.FALSE

e na outra o invertido.

Pra relatório ZEBRADO simples, eu faço o seguinte:

Crio um retângulo por trás dos meus fields, na banda DETAILS
Seto o foreground dele pra BRANCO e o background CINZA…

Nas propriedades do retângulo, na aba COMMOM, no campo PRINT WHEN EXPRESSION, coloco a seguinte expressãp

Nas propriedades deste retângulo, na acaba commom… em “print when expression” digito

new Boolean(($V{COLUMN_COUNT}.intValue() % 2) == 0)

Dessa forma, o retângulo cinza aparecerá se a linha for par e não aparecerá se a linha for ímpar…

A solução da RAGGIRL, explícita acima, também funciona perfeitamente, com a vantagem de que você pode colocar mais de uma cor…

Na minha solução, ou o retângulo aparece ou não…

É assim que eu faço… abraços.

Valeu pessoal muito obrigado…
T+

Boas pessoal,

Baseando me neste tema, apresento o seguinte problema :

Gostaria de saber como é que eu faço o ireport fazer um “Print when expression” quando um um valor recebido de um field for != .0

Muitas vezes em meus reports no campo “valor” eu recebo numeros (doubles) == zero e gostaria que quando estes numeros fossem .0 ele nao imprimisse.

Alguem me pode ajudar com isso ?

[quote=AdrianoPalm]Pra relatório ZEBRADO simples, eu faço o seguinte:

Crio um retângulo por trás dos meus fields, na banda DETAILS
Seto o foreground dele pra BRANCO e o background CINZA…

Nas propriedades do retângulo, na aba COMMOM, no campo PRINT WHEN EXPRESSION, coloco a seguinte expressãp

Nas propriedades deste retângulo, na acaba commom… em “print when expression” digito

new Boolean(($V{COLUMN_COUNT}.intValue() % 2) == 0)

Dessa forma, o retângulo cinza aparecerá se a linha for par e não aparecerá se a linha for ímpar…

A solução da RAGGIRL, explícita acima, também funciona perfeitamente, com a vantagem de que você pode colocar mais de uma cor…

Na minha solução, ou o retângulo aparece ou não…

É assim que eu faço… abraços.
[/quote]

Bom Dia,

Gostaria de saber porque o iReport ou o Jasper… acredito que seja o Jasper porque já é em tempo de execução, se perde literalmente com esse negócio do zebrando quando o relatório tem 2 colunas por exemplo.

Em vez de ele realizar o efeito do zebrado ele simplesmente oculta o retangulo da PRIMEIRA coluna … (para todos os registros) e mostra o retangulo na segunda coluna (para todos os registros novamente).

Gostaria de saber oque passa “por trás dos panos” para que fosse possível ajustar tal situacao… digo… para que o efeito de zebrado ocorresse como em um relatorio normal… no entando com este relatório contendo 2 colunas.

Como não manjo muito ainda sobre a formatação do XML que deve ser interpretado estou utilizando o iReport e não sei se outras configurações devem ser feitas… se precisar posto o XML aqui!

Obrigado!

http://www.guj.com.br/posts/list/108763.java :wink:

A solução de AdrianoPalm funcionou perfeitamente no meu projeto. Agradeço por compartilhar a informação! :smiley:

A solução de AdrianoPalm funcionou muito bem aqui também! Muito bom, ótimo e simples!

[quote=AdrianoPalm]Pra relatório ZEBRADO simples, eu faço o seguinte:

Crio um retângulo por trás dos meus fields, na banda DETAILS
Seto o foreground dele pra BRANCO e o background CINZA…

Nas propriedades do retângulo, na aba COMMOM, no campo PRINT WHEN EXPRESSION, coloco a seguinte expressãp

Nas propriedades deste retângulo, na acaba commom… em “print when expression” digito

new Boolean(($V{COLUMN_COUNT}.intValue() % 2) == 0)

Dessa forma, o retângulo cinza aparecerá se a linha for par e não aparecerá se a linha for ímpar…

A solução da RAGGIRL, explícita acima, também funciona perfeitamente, com a vantagem de que você pode colocar mais de uma cor…

Na minha solução, ou o retângulo aparece ou não…

É assim que eu faço… abraços.
[/quote]

Boa rapaz valeu!! resolveu aqui!!