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

31 respostas
L

[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]

31 Respostas

G

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

G

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

J

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

A

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]

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:

L

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 é?

J

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:

L

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

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.

J

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.

L

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

G

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( …

G

Consegui, mesmo assim brigadão!

L

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

Valeu!

M

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!

F

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

L

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

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

G

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

E

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).

E

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.

G

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…

V

Ola pessoal.

ACHEI A SOLUÇÃO

Eu também estava penando para mudar o tipo de linhas dos meus relatórios. As dicas dadas aqui não deram certo, então procurei melhor, porque eu não me conformava do IReport não ter mais estilos de linha… então achei onde modificar isso :lol:

Bom primeiro insiram um Retangulo, depois entrem nas propriedades do retangulo, agora entrem na aba “Todos” dentro das propriedades e lá terá um grupo de campos denominado “Desenho” então só altere o “Line Width” para 1 e o Line Style para o modelo que quiser.

PRONTOOOO … sem complicação … eu uso o Ireport 3.0 e jah tem essa opção então acho que funcionará

Abs

D

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]

Lalaine

Acabei de descobrir: menu Janela => Report Designer => Styles Library

Obrigado
Douglas Junior

D

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]

Ola Lalaine tudo bem?

Achei interessante sua dica, porém acredito que tenham mudados algumas opções devido a atualizações do JasperReports 4.5.0, enfim, eu não encontro onde adicionar condições no estilo.

Eu crio o estilo, aplico o estilo ao TestField, mas nem no estilo e nem no TextField eu encontro onde adicionar a condição:

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

Sendo assim, estou tendo que quebrar o galho com a “gambiarra” do retângulo atras do TextField.

Alguem saberia me dizer onde colocar as condições de estilo na versão 4.5.0 do iReports ?

Abraço
Douglas Junior

L

Estou tento problemas com esse efeito zebrado…estou utilizando o iReport 4.5.1. …fui em Style Librery e criei o style “zebra”, mas não acho o nde colocar a condicional para o style…alguem que esteja usando essa mesma versão pode me ajudar a criar esse efeito???
Att.
Letícia

D

leticianayara:
Estou tento problemas com esse efeito zebrado…estou utilizando o iReport 4.5.1. …fui em Style Librery e criei o style “zebra”, mas não acho o nde colocar a condicional para o style…alguem que esteja usando essa mesma versão pode me ajudar a criar esse efeito???
Att.
Letícia

Oi Leticia

Estou utilizando essa versão, porém cansei de quebrar a cabeça tentando fazer o style funcionar, sendo assim estou utilizando a “gambiarra” de colocar um componente “Retctangle” que ocupe todo o fundo do “Detail”, e então adicionamos na propriedade “Print When Expression:” do retângulo a seguinte fórmula:

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

Dessa forma, o retângulo só será impresso nas linhas ímpares, então basta pintar o retângulo da cor desejada e ficará com o efeito “zebrado”.

Abraços

Douglas Junior

L

Obrigada Douglas pela ajuda…mas seria interessante se alguém conseguisse descobrir onde colocar essa condicional…eu também tentei achar onde setar essa condicional mas não obtive sucesso.

Att.
Letícia

L

Gente,

Consegui setar a condicional no iReport 4.5.1 , ao abrir o seu relatório, na lado esquerdo, aparece os componentes do relatório (parametters, fields, styles, variables, etc ), clique com o botão direito em Styles, e adicione o style desejado, depois clique com o botão direito em cima do style criado e lá aparecerá “Adicionar Condicional Style” é ai que você deve colocar a condicional e configurar o background com a cor desejada.

Condicional

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

Porém não funcionou setando o style do TextField…para funcionar tive que criar um rectangle e setar o style dele com o style criado.

Bom continua sendo uma “gambiarra” mas é uma gambiarra mais sofisticada.

Quem souber como fazer funcionar diretamente no TextField na versão 4.5.1 da jasper por favor avise…

Att.
Letícia

D

Oi Letícia

Isso mesmo, até este ponto eu consegui chegar, porém temos que fazer com que o Style seja aplicado ao “textfield” ou não de acordo com a condição.

Vou fazer mais testes nessa parte depois, qualquer coisa posto aqui.

att

Douglas Junior

V

Lalaiane, muito obrigado pela postagem. Bela iniciativa.

Funcionou perfeitamente aqui pra mim. Estou usando IReport 3.6.2 (bem antiga, mas é a versão da empresa! :smiley: ).

Caminho.

-ReportInspector (Frame lado direito da tela):

-Botão direito em Styles -> new Style;

-Renomear novo style;

-Botão direito no novo style -> Add new Conditional Style;

-Botão direito no novo conditional style -> edit Expression;

-No Expression Editor basta colar new Boolean(($V{COLUMN_COUNT}.intValue() % 2) == 0) -> Clicar em Apply;

-Botão esquerdo no novo conditional Style;

-OBS: ao clicar na nova condição de estilo o frame Properties do lado direito apresenta as propriedades dessa nova condição.
-Properties (Frame do lado direito da tela):

-Opaque: marcado (checked);

-Forecolor: [0,0,0] (preto; cor da fonte);

-Backcolor: [204,204,204] (cinza; cor do fundo);

-Fill: solid;

-Bold: desmarcado;

-Italic: desmarcado;

-Underline: desmarcado;

Definido o novo estilo devemos escolher os campos que receberão este estilo. Então clicando com o botão esquerdo sobre o campo o frame Properties apresenta as propriedades deste campo.
Então novamente no frame eu defini:
-Properties (Framde do lado direito da tela):
-Style: nome do estilo que você informou.

Pronto. Depois foi só compilar e rodar. Só alegria! =)

Aliás, este é o estilo zebra para linhas. Para coluna eu não testei.

Até mais.

R

Olá pessoal, tudo bom?

Também estou tentando colocar meu relatório CrossTab no iRepor zebrado conforme ensinado.
Porém estou tendo o problema que é “ClassNotFoundException: No ClassLoaders found for: org.netbeans.beaninfo.editors.ColorEditor$SuperColor”.
Já procurei esta classe dentro do seu .jar, porém quando abro o .jar existe dentro dele apenas um arquivo .properties.

Estou utilizando o iReport 4.6.0. Percebi que parece ser alguma coisa do NetBeans mas eu trabalho com o Eclipse.

Alguém teria alguma idéia de como resolver isso?

Outra coisa, vocês conseguem gerar o relatório com CrossTab dentro da Band Detail? Para mim não funciona no Details, apenas no Sumary, por isso a técnica do retânguilo cinza não está me atendendo.

Abraço e Sucesso.

C

Boa tarde, estou tentando fazer o zebrado, mas quando exporto para excel utilizando a dica dada neste post o zebrado não funciona, alguém tem uma dica?

C

?

Criado 5 de novembro de 2008
Ultima resposta 27 de jun. de 2014
Respostas 31
Participantes 20