6

我有一个 Jasper 报告,它有一个详细信息部分,在详细信息部分内部是一个来自数据库的单个字段,该字段被打印出来。因此,如果我的查询返回 100 行,我会得到 100 行,这会生成一个大约 10 页长的报告,因为 10 条记录适合一页。

有没有办法可以在列中打印该字段,以便我可以在页面上放置 40 条记录,而不是 10 条?(通过有 4 列,每列 10 列)

4

1 回答 1

9

您可以配置多列报告。如果您使用的是 iReport,请在Report Inspector中右键单击报告名称并选择Page Format。在Columns部分中,将 Columns 从1增加到4,如果需要,可以配置Space以定义列之间的距离。如果单击报告,您还可以在“属性”面板中选择“打印顺序”。

在报表设计器中,您将字段拖到详细信息带的第一列中。

JRXML 中添加的属性位于<jasperreports ...标记中:

  • columnCount="4": 4 列
  • printOrder="Horizontal": 成交单是水平的。

附上 JRXML 以供进一步参考:

<?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="report8" language="groovy" columnCount="4" printOrder="Horizontal" pageWidth="595" pageHeight="842" columnWidth="138" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="5e2835cc-bc36-4f77-8631-08a8deaa28d7">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <queryString>
        <![CDATA[select 'A' as field]]>
    </queryString>
    <field name="field" class="java.lang.String"/>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement uuid="76707cdd-7dbe-477e-b3a4-38f9ba3bd003" x="0" y="0" width="136" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>
于 2013-01-30T15:58:06.457 回答