【问题标题】:Report with Horizontal print order: Issue with truncating long text in textField具有水平打印顺序的报告:在 textField 中截断长文本的问题
【发布时间】:2012-09-29 01:41:48
【问题描述】:

我正在使用 JasperReports 4.0.2(从长远来看并没有与它绑定,但现在我们是)。

我的子报表设置为支持 3 列数据时遇到问题。我有 2 个正在打印的文本字段,当文本字段的数据太长时,它被截断。在遵循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" 标志。

【问题讨论】:

标签: jasper-reports report export-to-pdf


【解决方案1】:

我找到了我的答案,只是jasper的一个局限。

http://jasperreports.sourceforge.net/sample.reference/horizontal/index.html

当横向填充报表模板时,里面的动态文本字段 详细信息部分不会延伸到其整个文本内容, 因为这可能会导致水平轴错位 随后的详细部分。细节带实际上表现相同 作为页脚和列脚,保留其声明的高度 使用水平填充。

长话短说,当水平填充时,你不能指望垂直扩展,太糟糕了!

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多