gpt4 book ai didi

jasper-reports - 如何删除 JasperReports 中文本字段之间的额外空间?

转载 作者:行者123 更新时间:2023-12-04 16:35:37 31 4
gpt4 key购买 nike

我在 Header 中创建了三个文本字段。我已经把参数放在所有 textField元素。当我不调用三个参数之一时 textField元素。它将显示 2 textField元素。现在的问题是文本字段之间有空格。

怎么去掉空格?

这是我的代码:

<textField isBlankWhenNull="true">
<reportElement x="0" y="18" width="555" height="35" isRemoveLineWhenBlank="true"/>
<textElement textAlignment="Center">
<font size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{daterangefrom} && $P{daterangeto} ? "From ( " + $P{daterangefrom} + " - " + $P{daterangeto} + ")"
: $P{weeks} && $P{monthy} && $P{yrs} ? "For week " + $P{weeks} +" "+ $P{monthy} +" "+ $P{yrs}
: $P{monthy} && $P{yrs} ? "For monthly " +$P{monthy} +" "+ $P{yrs}
: $P{quarter} && $P{yrs} ? "For Quarter " + $P{quarter} +" "+$P{yrs}
: $P{yrs} ? "For " + $P{yrs}
: null]]>
</textFieldExpression>
</textField>

这是我的结果:

enter image description here

最佳答案

您可以使用 3 textField带有 的元素isRemoveLineWhenBlank 属性设置为 true值(value)。

示例(jrxml 文件):

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport .. topMargin="0" bottomMargin="0">
<parameter name="parameter1" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<parameter name="parameter2" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<parameter name="parameter3" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<title>
<band height="102" splitType="Stretch">
<textField isBlankWhenNull="true">
<reportElement x="163" y="9" width="100" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{parameter1} == null ? null : "Parameter1: " + $P{parameter1}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="163" y="29" width="100" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{parameter2} == null ? null : "Parameter2: " + $P{parameter2}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="163" y="49" width="100" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{parameter3} == null ? null : "Parameter3: " + $P{parameter3}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="163" y="73" width="100" height="20"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<text><![CDATA[Static text]]></text>
</staticText>
<line>
<reportElement x="63" y="6" width="447" height="1"/>
</line>
<line>
<reportElement x="73" y="96" width="447" height="1"/>
</line>
</band>
</title>
</jasperReport>
iReport中的报表设计:
Report's design in iReport

对于参数 1=null、参数 2=null、参数 1=value3,结果将是:
The result in iReport (preview mode)

更新

用于解决 textField向上移动的问题如果上面的元素被隐藏,你可以使用 Frame容器。您应该添加 2 个框架(每列一个)并放置 2 textField每帧中的元素(2 行)。

示例(jrxml 文件):

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport .. topMargin="0" bottomMargin="0">
<parameter name="par1" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<parameter name="par2" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<parameter name="par3" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<parameter name="par4" class="java.lang.String">
<defaultValueExpression><![CDATA[null]]></defaultValueExpression>
</parameter>
<title>
<band height="80" splitType="Stretch">
<line>
<reportElement x="10" y="6" width="520" height="1"/>
</line>
<line>
<reportElement x="10" y="72" width="520" height="1"/>
</line>
<frame>
<reportElement x="329" y="10" width="172" height="59"/>
<frame>
<reportElement x="13" y="3" width="60" height="54"/>
<textField isBlankWhenNull="true">
<reportElement x="1" y="20" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par3} == null ? null : "P3: " + $P{par3}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="1" y="0" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par1} == null ? null : "P1: " + $P{par1}]]></textFieldExpression>
</textField>
</frame>
<frame>
<reportElement x="73" y="3" width="70" height="54"/>
<textField isBlankWhenNull="true">
<reportElement x="1" y="0" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par2} == null ? null : "P2: " + $P{par2}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="1" y="20" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par4} == null ? null : "P4: " + $P{par4}]]></textFieldExpression>
</textField>
</frame>
</frame>
<textField isBlankWhenNull="true">
<reportElement x="10" y="30" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par3} == null ? null : "P3: " + $P{par3}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="10" y="10" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par1} == null ? null : "P1: " + $P{par1}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="64" y="10" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par2} == null ? null : "P2: " + $P{par2}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="64" y="30" width="52" height="20" isRemoveLineWhenBlank="true"/>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$P{par4} == null ? null : "P4: " + $P{par4}]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
iReport中的报表设计:
The design in iReport. Two cases

对于 par1=null, par2=2, par3=3, par4=4 结果将是:
The result in iReport preview. Two cases

您可以比较结果 - 左侧完成而不使用 frame右侧带有 frame元素。

关于jasper-reports - 如何删除 JasperReports 中文本字段之间的额外空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071943/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com