Jasper Reports - Campo dinâmico ao esticar esta sobrescrevendo os demais logo abaixo
6 respostas
alanSoaresCarneiro
Pessoal,
Estou com um pequeno problema. Tentei diversas alternativas mas sem sucesso.
Tenho um relatório que apresenta um conteúdo de texto dinâmico(Html/Rtf). Ocorre que o jasper
ao esticar o campo a fim de apresentar toda a informação acaba por sobrescrever os campos
contidos logo abaixo dele.
Cara, a princípio só colocar o campo para posição flutuante já deveria funcionar…
Confira no xml se o campo está configurado assim mesmo…
jhaga
Concordo com o erico_kl, basicamente é só mudar o “position type” e pronto. Mas tente as outras opções “stretch type”, “stretch with overflow”.
Pode ser uma coisa bem besta, mas rever se os “fields” estão nas bandas corretas também. Já tive um problema por falta de atenção, achei que o field estava numa banda e estava em outra huahuahuahua
Enfim. Vale a dica também do erico, às vezes você seta um atributo e no xml, estas informações não são gravadas corretamente.
alanSoaresCarneiro
Ao colocar o position type como float, percebe-se que o campo a ser sobrescrito é empurrado para baixo.
A minha intenção seria que, no momento em que o campo dinâmico alcançasse o campo que ser sobrescrito
ele apresentasse o restante do conteúdo em outra pagina.
Sei que este comportamento parece um pouco estranho :roll:, mais temos uma opção que permite ao usuário adicionar
um campo tipo Quebra, ou seja, o comportamento deste assemelha-se a uma banda
Segue abaixo o JRXML do relatorio.
<?xmlversion="1.0"encoding="UTF-8"?><jasperReportxmlns="http://jasperreports.sourceforge.net/jasperreports"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"name="Dados_Exame"pageWidth="556"pageHeight="749"whenNoDataType="AllSectionsNoDetail"columnWidth="500"leftMargin="0"rightMargin="0"topMargin="0"bottomMargin="0"uuid="7dbc071b-9bbb-4f49-83bf-be2cbeba37b4"><propertyname="ireport.zoom"value="1.0"/><propertyname="ireport.x"value="0"/><propertyname="ireport.y"value="0"/><importvalue="net.sf.jasperreports.engine.*"/><importvalue="java.util.*"/><importvalue="net.sf.jasperreports.engine.data.*"/><queryString><![CDATA[select'Campo que esta sendo sobrescrito'medico,r.ds_conteudods_examefromtabelarWHEREr.id_tabela=53799]]></queryString><fieldname="MEDICO"class="java.lang.String"/><fieldname="DS_EXAME"class="java.lang.String"/><detail><bandheight="168"><elementGroup><rectangleradius="0"><reportElementuuid="c03a69f2-4b53-4651-bbeb-fe094e518403"key="staticText-1"positionType="Float"mode="Opaque"x="1"y="0"width="555"height="15"forecolor="#000000"backcolor="#FFFFFF"/><graphicElementfill="Solid"><penlineWidth="0.0"lineStyle="Solid"/></graphicElement></rectangle></elementGroup><textFieldisStretchWithOverflow="true"pattern="L"isBlankWhenNull="false"><reportElementuuid="eeadd36b-35bd-4521-a5a9-d93b307b87b5"key="staticText-1"positionType="Float"mode="Transparent"x="15"y="0"width="527"height="12"forecolor="#000000"backcolor="#FFFFFF"/><box><penlineWidth="0.0"/><topPenlineWidth="0.0"/><leftPenlineWidth="0.0"/><bottomPenlineWidth="0.0"/><rightPenlineWidth="0.0"/></box><textElementtextAlignment="Left"rotation="None"markup="rtf"><fontfontName="Arial"size="8"isBold="false"isItalic="false"isUnderline="false"isStrikeThrough="false"/></textElement><textFieldExpression><![CDATA[$F{DS_EXAME}]]></textFieldExpression></textField><textFieldevaluationTime="Page"pattern=""isBlankWhenNull="true"><reportElementuuid="206e5c00-39ef-47e2-b70b-012774f59789"key="staticText-1"mode="Transparent"x="33"y="0"width="1"height="12"forecolor="#000000"backcolor="#FFFFFF"/><box><penlineWidth="0.0"/><topPenlineWidth="0.0"/><leftPenlineWidth="0.0"/><bottomPenlineWidth="0.0"/><rightPenlineWidth="0.0"/></box><textElementtextAlignment="Left"rotation="None"markup="none"><fontfontName="Arial"size="8"isBold="false"isItalic="false"isUnderline="false"/></textElement><textFieldExpression><![CDATA["%_#PA#_%"+"/"+"%_#NOP#_%"]]></textFieldExpression></textField><textFieldisStretchWithOverflow="true"pattern=""isBlankWhenNull="true"><reportElementuuid="0a76ab4d-3bf4-4494-adbf-2b27b4cd3979"key="staticText-1"stretchType="RelativeToBandHeight"mode="Transparent"x="15"y="143"width="376"height="15"forecolor="#000000"backcolor="#FFFFFF"/><box><penlineWidth="0.0"/><topPenlineWidth="0.0"/><leftPenlineWidth="0.0"/><bottomPenlineWidth="0.0"/><rightPenlineWidth="0.0"/></box><textElementtextAlignment="Right"rotation="None"markup="none"><fontfontName="Arial"size="12"isBold="false"isItalic="false"isUnderline="false"/></textElement><textFieldExpression><![CDATA[$F{MEDICO}]]></textFieldExpression></textField></band></detail></jasperReport>
alanSoaresCarneiro
Se existisse uma propriedade tal que, eu pudesse fixar a altura do campo(Dinâmico), e que caso o conteúdo a ser apresentado por
este ultrapassasse a sua capacidade de apresentação, ele gerasse uma quebra de pagina para o restante, já me serviria.
Seria como um Stretch With Overflow desmarcado, levando em consideração a altura definida para o campo, mas imprimindo o
restante do texto que não coube na próxima página .
jhaga
Sinceramente não vejo uma solução para isso.
O que você pode tentar fazer é, dentro da banda que você tem esses campos, inserir um elemento do tipo “frame” e dentro deste frame inserir os campos. No seu caso, você teria dois frames. E nas propriedades destes frames você verifica as questões de stretch possíveis.
H
hellin
Não queria dar uma de coveiro, mas o meu problema é exatamente igual ao do autor do tópico.
Tenho um relatório e um Sub-relatório(banda detail).
No preview do Ireport(5.0.4) está OK, mas quando abro no navegador, o texto é sobrescrito.
Alterando algumas opções, consegui diminuir o problema. Um relatório de 30 páginas por exemplo, só apresentou este problema a partir da linha 6.
E nas finais o erro sumiu. o.0