Olá a todos do GUJ.
Estou enfrentando sérios problemas com o iReports que não realiza o agrupamento de dados, mesmo eu setando aparentemente tudo certo no design.
Eu achei que o Bean que eu criei para o report estava com algum tipo de problema, mas notei que o comportamento se repete mesmo quando eu pego os dados diretamente do banco.
Criei um group no iReport e informei que a expressão do grupo era o campo “codigo_bordero”, ou seja, quando este dado mudasse ele deveria criar outro agrupamento na próxima página, já que marquei como true a opção “Iniciar em nova página”.
Ocorre que o campo que coloquei como expressão do do Header do grupo nunca tem seu valor alterado. E notei também que ele pega o último valor que vem ordenado no banco e o usa todas as vezes.
Como teste, pedi para ele imprimir o valor do bordero dentro do HeaderGroup e fora também (na área de details). O valor que vem impresso dentro da band Detail vem ordenado e mudando corretamente, ao passo que o valor dentro do group que é o mesmo simplesmente nunca se altera!
Segue o fonte do meu report:
[code]<?xml version="1.0" encoding="UTF-8" ?>
<queryString><![CDATA[SELECT
codigo_bordero,
razao_social,
rua,
numero,
complemento,
interlocutor_1,
interlocutor_2,
interlocutor_3,
num_enc_cli
FROM
prepax_alelo
WHERE
codigo_bordero is not null
ORDER BY codigo_bordero,num_enc_cli]]></queryString>
<field name="codigo_bordero" class="java.lang.String"/>
<field name="razao_social" class="java.lang.String"/>
<field name="rua" class="java.lang.String"/>
<field name="numero" class="java.lang.String"/>
<field name="complemento" class="java.lang.String"/>
<field name="interlocutor_1" class="java.lang.String"/>
<field name="interlocutor_2" class="java.lang.String"/>
<field name="interlocutor_3" class="java.lang.String"/>
<field name="num_enc_cli" class="java.lang.String"/>
<group name="bordero" isStartNewPage="true" >
<groupExpression><![CDATA[$F{codigo_bordero}]]></groupExpression>
<groupHeader>
<band height="75" isSplitAllowed="false" >
<line direction="TopDown">
<reportElement
x="1"
y="63"
width="567"
height="1"
forecolor="#000000"
backcolor="#000000"
key="line-3"/>
<graphicElement stretchType="NoStretch">
<pen lineWidth="1.5" lineStyle="Solid"/>
Em anexo segue como ele gera o PDF.
Note que dentro do group ele imprime o valor “9956857500”, que é exatamente o último valor que o banco traz na ordenação. Ao passo que fora do group, na band Detail, o report obedece a ordenação da query corretamente.
O que pode estar acontecendo?
Obrigado!