我正在使用 JasperReports 4.0.2 (从长远来看并不依赖它,但是现在我们都是。)
我遇到了子报告的问题,该子报告设置为支持3列数据。我有两个正在打印的文本字段,当文本字段的数据太长时,它将被截断。按照JasperReport - wrap text to show long text in textfield帖子中的建议后,我仍然在努力让文本字段正确溢出以显示数据。
这是我的报告文件:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="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="record" language="groovy" columnCount="3" printOrder="Horizontal" pageWidth="572" pageHeight="752" columnWidth="157" columnSpacing="50" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
<field name="geoName" class="java.lang.String"/>
<field name="count" class="java.lang.Integer"/>
<variable name="count" class="java.lang.String">
<variableExpression><![CDATA[new java.text.DecimalFormat("###,###,###,###").format($F{count})]]></variableExpression>
</variable>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="15" splitType="Stretch">
<textField isStretchWithOverflow="true">
<reportElement x="0" y="0" width="90" height="15" stretchType="RelativeToBandHeight" positionType="Float"/>
<textElement verticalAlignment="Middle">
<font fontName="Arial"/>
</textElement>
<textFieldExpression><![CDATA[$F{geoName}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement x="90" y="0" width="67" height="15" stretchType="RelativeToBandHeight" positionType="Float"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font fontName="Arial"/>
</textElement>
<textFieldExpression><![CDATA[$V{count}]]></textFieldExpression>
</textField>
<line>
<reportElement x="182" y="0" width="1" height="15" forecolor="#CCCCCC" stretchType="RelativeToBandHeight" positionType="Float"/>
</line>
</band>
</detail>
</jasperReport>
报告通常可以正常工作并按原样水平扩展,但如果任一文本字段中的数据太长,它只会截断它。我唯一的解决方法是增加波段大小,但这看起来不太好。我也尝试了 isPrintWhenDetailOverflows="true"
标志。
答案 0 :(得分:1)
我找到了答案,这只是碧玉的限制。
http://jasperreports.sourceforge.net/sample.reference/horizontal/index.html
水平填充报表模板时,内部包含动态文本字段 细节部分不会延伸到整个文本内容, 因为这可能会导致水平轴上的错位 后续细节部分。细节带实际上表现相同 作为页面和列的页脚,保留其声明的高度时 使用水平填充。
如此长的故事,当水平填充时,你也不能指望垂直扩展,这真是太棒了!