Pra quem quer criar o efeito "zebrado" em relatorios do iReport

[b][color=violet]Procurei uma forma de fazer o efeito zebrado no meu relatorio e a unica solucao que me passavam era a de colocar um retangulo colorido por tras do textfield para ser impresso mediante uma condicao.
Isso é muito gambi e so funcionaria se minhas linhas ficassem sempre da mesma altura.
Portanto fui atrás de uma solucao mais profissional e estou compartilhando com alguem que precise

Vá no menu Formatar -> Estilos -> Novo
Na lateral direita da janela voce irá reparar o Condicoes do estilo, onde já localizamos um estilo padrão.
Esse estilo padrão é o estilo que será exibido independente de qualquer coisa e do lado esquerdo voce podera modificar o que quiser.
No caso do efeito zebrado, queremos que o background do textfield seja alterado em linhas alternadas, entao lá no condicoes do estilo iremos criar uma nova condicao
na janela que se abre coloque isto:[/color][/b]

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

[color=violet]Feito isso voce deixa essa condicao clicada e do lado esquerdo altera a proriedade comum->modo para opaco
e a cor de fundo voce seleciona o que quiser.
Uma vez criado o estilo vamos utilizá-lo:
Va no(s) textfield(s) -> propriedades ->comum
procure um combobox “estilo” e repare que irá aparecer lá o estilo que voce criou.
É só seleciona-lo, compilar o relatorio e está feito.
8) [/color]

1 curtida

Isso é bastante interessante, vou utilizar nos meus futuros relatórios.

Acabei de usar aqui essa dica…perfeito!! Tinha q vim aqui agradecer! Parabens!! :lol:

1 curtida

Uia sempre fiz com retangulos toscos… vou ter que testar dessa forma =]

[quote=lalaine][b][color=violet]Procurei uma forma de fazer o efeito zebrado no meu relatorio e a unica solucao que me passavam era a de colocar um retangulo colorido por tras do textfield para ser impresso mediante uma condicao.
Isso é muito gambi e so funcionaria se minhas linhas ficassem sempre da mesma altura.
Portanto fui atrás de uma solucao mais profissional e estou compartilhando com alguem que precise

Vá no menu Formatar -> Estilos -> Novo
Na lateral direita da janela voce irá reparar o Condicoes do estilo, onde já localizamos um estilo padrão.
Esse estilo padrão é o estilo que será exibido independente de qualquer coisa e do lado esquerdo voce podera modificar o que quiser.
No caso do efeito zebrado, queremos que o background do textfield seja alterado em linhas alternadas, entao lá no condicoes do estilo iremos criar uma nova condicao
na janela que se abre coloque isto:[/color][/b]

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

[color=violet]Feito isso voce deixa essa condicao clicada e do lado esquerdo altera a proriedade comum->modo para opaco
e a cor de fundo voce seleciona o que quiser.
Uma vez criado o estilo vamos utilizá-lo:
Va no(s) textfield(s) -> propriedades ->comum
procure um combobox “estilo” e repare que irá aparecer lá o estilo que voce criou.
É só seleciona-lo, compilar o relatorio e está feito.
8) [/color]
[/quote]

Ola lalaine , eu tenho trabalhado com ireport por alguns meses e ja utilizei essa sua dica, mas no meu ultimo relatorio essa tatica não esta funcionando, eu andei lendo um livro e fiz umas pesquisas, mas nao consegui ajuda…
O que eu vi no livro é que essa codificacao é usada em frames , é unica coisa que poderia ser diferente do que eu to fazendo ja que estou usando fields.
Eu nao consegui descobri por que nao esta ficando zebrado, se voce ou alguem aqui do guj tiver alguma ideia e puder me ajudar fico muito grata
:smiley:

Não consegui usar a dica no iReport 3.7.1! Não tem a opção Estilo no menu Format.
Procurei em outros lugares e não encontrei!

Alguém sabe onde é?

Vai em menu -> janela ->Report Inspector, Style botão direito adicionar Stile nas propriedades de um nome ex: zebra Backcolor branco Default Style- true, Opaque- true, na janela Report Inspector vai em zebra botão direito Adicionar Condicional Style, no icone que abre, botão direito Edit Condition e coloca new Boolean(($V{COLUMN_COUNT}.intValue() % 2) != 0) para confirmar a Aplly. Nas propriedades dele Backcolor da cor que você quer que zebre, ai é so ir no seu relatorio e definir nas propriedades dos campos que você quer que ficam zebrados os Style com zebra.

ok :smiley:

[quote=jacksonlunkes] Vai em menu -> janela ->Report Inspector, Style botão direito adicionar Stile nas propriedades de um nome ex: zebra Backcolor branco Default Style- true, Opaque- true, na janela Report Inspector vai em zebra botão direito Adicionar Condicional Style, no icone que abre, botão direito Edit Condition e coloca new Boolean(($V{COLUMN_COUNT}.intValue() % 2) != 0) para confirmar a Aplly. Nas propriedades dele Backcolor da cor que você quer que zebre, ai é so ir no seu relatorio e definir nas propriedades dos campos que você quer que ficam zebrados os Style com zebra.

ok :D[/quote]

Cara, parece que deu certo, mas ta imprimindo toda linha, e não uma sim e outra não.
No lugar de COLUMN_COUNT eu coloquei REPORT_COUNT, que até onde eu sei é o contador de registro da página. Mas mesmo assim ta imprimindo todas as linhas.

COLUMN_COUNT conta as colunas pelo que eu sei provavelmente você deve ter definido este styles para todos ele so vai zebrar sa colunas das bands que se expandem como detail,
tente ir en styles adicionar styles e defina static text, barras, e outros componentes que você tiver nas bands que não se expandem como este style e na band dedail defina os componentes
que tm la como style zebra tenta ai.

Cara, não entendi muito bem o que você disse, mas acredito que já fiz oq vc está dizendo. “Setei” o style da linha da band detail como zebra e adicionei a condição. O problema está na aplicação da condição, pois qualquer coisa que coloco na condição não altera o resultado, pois todas as linhas ficam coloridas, e não uma sim e outra não.
Ja coloquei na condição simplesmente “false”, e mesmo assim as linhas são coloridas, o que não deveria acontecer, certo?
Então acho que a minha condição não está sendo avalidada por algum motivo que não sei qual é.

Obrigado

Revivendo, tentei fazer o esquema mas naum funcionou

Usando netBeans 6.8 + plugin para iReport 3.7.3
tentei gerar o style e pah, mas naum sei onde colocar o codigo do new Boolean( …

Consegui, mesmo assim brigadão!

Consegui tbm!
O que se deve fazer é “setar” a cor no conditional style, e não no style.
Aí da certo!

Valeu!

Muito boa a dica!
Utilizei na versão 3.7.3

Um detalhe, não estava funcionando foi quando eu resolvi colocar o tal opaco como true nas propriedade do style, na condição do style e no text field da tabela.

Abraços, muito maneiro a dica!

galera, preciso de um help,

estou tentando usar a dica num crosstab mas ele em vez de alternar as linhas esta alternando as colunas!

alguem pode me ajudar??

abração

[quote=fuscazul72]galera, preciso de um help,

estou tentando usar a dica num crosstab mas ele em vez de alternar as linhas esta alternando as colunas!

alguem pode me ajudar??

abração[/quote]

Cara já que vc é novo, crie um tópico novo com sua dúvida,isso vai te ajudar e provavelmente vai ter repostas…
assim vc ajuda o forum e tbm ajuda outras pessoas caso tenham o mesma dúvida

valeu abrxx

Como você está usando crosstab, imagino que a quantidade de colunas é variável, assim, você pode usar está formula (se alguém souber uma forma mais bonita xD)

(($V{COLUMN_COUNT} -1) % ($V{QUANT_COLUMN} * 2)) < $V{QUANT_COLUMN}

Onde ($V{COLUMN_COUNT} -1) recebe o número da coluna partindo do zero, $V{QUANT_COLUMN} * 2) é a quantidade de colunas em 2 linhas e $V{QUANT_COLUMN} lógicamente é a quantidade de colunas :B

Acabei de utilizar a dica do pessoal.

Uma coisa que tive problemas e deve ter sido o problema de vários por aqui foi o seguinte.

1 - Você cria um estilo e seta o backround para cinza.
2 - Adicione a este estilo um “conditional style”, inclua a condição, E ALTERE A COR DO BACKROUND DESTE CONDITIONAL STYLE PARA BRANCO.

Nas dicas não ficou claro que era necessário alterar a cor na condição (eu pensei no início que esta condição era para o estilo).

Acabei de me deparar com um novo problema.

Tenho um relatório já com o efeito “zebrado” funcionando, porém foi necessário incluir um subreport e este subreport fica todo branco, claro.

A estrutura do relatório é mais ou menos assim:

linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal coluna_sub_report coluna_sub_report linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal coluna_sub_report linha_relatório_principal coluna_sub_report fim_linha_relatorio_principal

O relatório principal lista várias linhas, sendo que possui um atributo, que eu descrevi aqui como “coluna_sub_report”, que pode ter 1 ou mais linhas.

Pensei em aplicar à todas as linhas do sub_report a mesma cor da linha “pai” do relatório principal. Mas como fazer isso?
Pensei em passar a cor por parâmetro para o subreport, mas tem que ser um parâmetro dinâmico relativo a linha principal.

Alguém sabe como resolver isso?

Muito obrigado.

Algum de vocês já utilizou os styles para fazer efeito zebrado em linhas com [color=green]isStretchWithOverflow=“true”[/color]? Não estou conseguindo fazer a linha se estender até o final do detail.

Obrigado galera…