【问题标题】:Avoid split of text field to multiple pages避免将文本字段拆分为多个页面
【发布时间】:2012-05-24 20:37:20
【问题描述】:

我有一个主报告,在主报告中有一个子报告,称为:

<detail>
    <band height="50">
        <subreport>
            <reportElement x="0" y="1" width="802" height="49" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true"/>
            <subreportParameter name="project_id">
                <subreportParameterExpression><![CDATA[$P{project_id}]]></subreportParameterExpression>
            </subreportParameter>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression><![CDATA["subs/Project_planned.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

子报表中存在问题,因为详细信息区域中的文本字段被拆分在多个页面上,看起来不太好。使用属性isStretchWithOverflow时是否有防止文本字段分成多个页面的选项

文本字段的当前代码

                <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                <reportElement stretchType="RelativeToBandHeight" x="555" y="0" width="99" height="21" isPrintInFirstWholeBand="true" forecolor="#000000"/>
                <box leftPadding="2">
                    <topPen lineWidth="1.0" lineColor="#000000"/>
                    <leftPen lineWidth="1.0" lineColor="#000000"/>
                    <bottomPen lineWidth="1.0" lineColor="#000000"/>
                    <rightPen lineWidth="1.0" lineColor="#000000"/>
                </box>
                <textElement verticalAlignment="Middle">
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{logic}]]></textFieldExpression>
            </textField>

外观示例(抱歉缺少数据):

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    是的,但不在文本字段中。对于文本字段所在的波段,您可以将拆分类型设置为Prevent。如果您在 Detail Band 上设置,并且该行需要溢出到下一页,它会将整行移动到下一页。

    【讨论】:

    • 我在 iReport 中尝试过,但每次选择此选项时,它都会变回 &lt;default&gt; 所以我想这在我的情况下是不可能的,但是当我在 XML 中硬编码时:@ 987654323@ 仍然不工作...另一个建议?
    • 我发现了问题。我已经在主报告的详细信息带中设置了子报告。这发生在几个奇怪的行为中。我现在在页脚中设置子报表,它似乎解决了我的问题,除了我的主页页眉现在没有显示在每个页面上
    • 另一条评论:我解决了。不知道具体如何,但它似乎已修复。 Subreport 仍然在 mainreport 的详细信息带中。 Prevent 上的子报表详细信息的 splitType 以及文本字段上的以下属性:stretchType="RelativeToBandHeight" height="21" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true"
    • 据我记忆是无法解决的。基本上发生的事情是它放置最后一行,更新计数,然后它可以告诉该行不适合并将其移动到下一页。您可能想打开另一个 SO 问题寻求帮助,也许有人会知道解决方案。对不起。
    • 我已经通过添加一个新变量来更改它,并按组而不是按页面重置它。目前这解决了问题。感谢您的回答和评论。 Jasper 的报告很棒而且无限,但有时会让人头疼 ;-)
    猜你喜欢
    • 2016-07-25
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多