我有一个 Jasper 报告,它有一个详细信息部分,在详细信息部分内部是一个来自数据库的单个字段,该字段被打印出来。因此,如果我的查询返回 100 行,我会得到 100 行,这会生成一个大约 10 页长的报告,因为 10 条记录适合一页。
有没有办法可以在列中打印该字段,以便我可以在页面上放置 40 条记录,而不是 10 条?(通过有 4 列,每列 10 列)
我有一个 Jasper 报告,它有一个详细信息部分,在详细信息部分内部是一个来自数据库的单个字段,该字段被打印出来。因此,如果我的查询返回 100 行,我会得到 100 行,这会生成一个大约 10 页长的报告,因为 10 条记录适合一页。
有没有办法可以在列中打印该字段,以便我可以在页面上放置 40 条记录,而不是 10 条?(通过有 4 列,每列 10 列)
您可以配置多列报告。如果您使用的是 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>