Jasper报告栏布局

时间:2013-01-30 15:46:13

标签: jasper-reports ireport

我有一个Jasper报告,其中有一个详细信息部分,详细信息部分内部是数据库中打印的单个字段。因此,如果我的查询返回100行,我会得到100行,这会产生大约10页长的报告,因为10个记录适合页面。

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

1 个答案:

答案 0 :(得分:8)

您可以配置多列报告。如果您使用的是iReport,请右键单击报告名称上的报告检查器,然后选择页面格式。在部分中,将列从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>