【问题标题】:iReport (JasperReports) extra row issueiReport (JasperReports) 额外行问题
【发布时间】:2011-12-02 09:18:30
【问题描述】:

当我从数据库中导入数据并在 Excel 工作表中格式化报告时,数据之间出现了一个额外的空行。

编辑(来自评论的澄清):Excel 中的输出显示记录之间有一个额外的空白行,字段之间有一个额外的空白列。

【问题讨论】:

  • empty row between data 是什么意思?
  • 假设数据库中有 2 列包含一些记录,当我在 IReports 中为数据库中的列和相应的记录创建报告并导入它时,M 在每个之间获得额外的空白行和额外的空白列场..!

标签: excel jasper-reports ireport


【解决方案1】:
  • net.sf.jasperreports.export.xls.remove.empty.space.between.columnsnet.sf.jasperreports.export.xls.remove.empty.space.between.rows 属性添加到报告模板。

net.sf.jasperreports.export.xls.remove.empty.space.between.columns - 指定是否应删除空的分隔列。

net.sf.jasperreports.export.xls.remove.empty.space.between.rows - 指定是否应删除空的分隔行。

样本:

<jasperReport ...>
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>

配置属性信息为here

  • 您可以为 textField 元素设置 isRemoveLineWhenBlankisBlankWhenNull 来隐藏空白行。

当前textField为空时如何删除整行的示例:

<textField isBlankWhenNull="true">
    <reportElement x="0" y="0" width="100" height="20" isRemoveLineWhenBlank="true"/>
    <textElement/>
    <textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
</textField>
  • 另一个假设是改变Band中所有textField(或/和staticText)元素的高度。

如果这种设计:

任何两行之间都有一个空格。

如果这种设计(textField 高度等于 Band 的 高度):

每一行都在另一行之下。

【讨论】:

【解决方案2】:

Alex K 在 2011 年 12 月 2 日的回答中所说的每一件事都是正确的。但其他一些设置可能会有所帮助。当报告的文本延伸详细信息带时,这些设置会有所帮助。

在详细波段集中的每个字段上:

positionType="浮动"

stretchType="RelativeToTallestObject"

例子:

<detail>
    <band height="20" splitType="Prevent">
        <textField isStretchWithOverflow="true" isBlankWhenNull="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" mode="Transparent" x="372" y="0" width="100" height="20"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{your column name}]]></textFieldExpression>
        </textField>

这将强制所有字段为一个高度。浮动设置告诉字段最小化上一行和下一行之间的距离。 RelativeToTallestObject 设置告诉波段中的所有字段与最高字段的高度相同。这两个设置有助于消除在 Excel 中显示为不需要的单元格的“空白空间”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多