Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Relátorio dinâmico.

Olá, eu ainda não vi todo o curso, mas gostaria de saber se é possível fazer um relatório dinâmico? Por exemplo uma agenda de consultas, onde cada consulta tem um tempo diferente.

10 respostas

Oi Alexandre,

se o "tempo" for uma variável (apenas o valor varia) é possível sim.

abs

Certo, no caso meu problema é que tenho uma calendário de espaço de tempo de 30 minutos. E consultas de 30 e 50 minutos. Minha intenção é a linha ser pintada de acordo com o tempo da consulta. Mais ou menos como essas img: http://goo.gl/KQdLns

É possível com IReport? Caso sim pode me indicar algum material complementar?

Oi Alexandre,

isso é tranquilo de fazer e o nosso curso deve te dar a base para implementar.

vc já assistiu tudo?

abs

Estou assistindo, estou na 5ª aula agora e não faço ideia de como resolver. :(

Alexandre, vc está usando a versão mais atual do iReport?

abs

Sim, Ireport 5.6.

Oi Alexandre,

então vamos lá:

1) Dentro do iReport cria um novo "style" (é o primeiro elemento dentro do Report Inspector).

2) Depois vá para aba "XML" e procura o elemento style que vc acabou de criar. Deve estar quase no inicio do XML.

3) Substitua toda declaração do elemento <style ...> com a declaração abaixa:

    <style name="consultaStyle">
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{tempoConsulta} >=5]]></conditionExpression>
            <style forecolor="#00FF00" backcolor="#FF0000" isBold="false" mode="Opaque"/>
        </conditionalStyle>
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{tempoConsulta} < 5]]></conditionExpression>
            <style forecolor="#FF0000" backcolor="#00FF00" isBold="true" mode="Opaque"/>
        </conditionalStyle>
    </style>

Repare que existe um estilo consultaStyle que é conditional (baseado numa expression). Além disso, minha condição usa um field que se chama $F{tempoConsulta} . Ai vc precisa mexer e usar o seu field com sua condição!

4) Por ultimo vc precisa aplicar esse consultaStyle nas propriedades de um campo (field). Volte ao Desigener e seleciona o campo que gostaria de personalizar baseado com o estilo conditional. Nas propriedades desse campo procure Style e selecione nosso consultaStyle

5) Com um pouquinho de sorte vai funcionar :)

abs

Resolve a questão da cor, porém cada field pode ter um tamanho diferente.

solução!

Cada field possui um atributo isStretchWithOverflow="true", talvez isso resolve o seu problema.

Vc também pode fugir do iReport e gerar o relatorio dinamicamente com http://dynamicjasper.com/

abs

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software