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