Adding table border in jasperreports

How do you create a report with table like data?

I was able to create a report with details below. It arranges the data in a table-like structure.

<jasperReport>  
.
.
    <pageHeader>
        <band height="30">
            <staticText>
                <reportElement x="0" y="0" width="69" height="24" />
                <textElement verticalAlignment="Bottom" />
                <text><![CDATA[ID: ]]></text>
            </staticText>
            <staticText>
                <reportElement x="140" y="0" width="69" height="24" />
                <textElement verticalAlignment="Bottom" />
                <text><![CDATA[NAME: ]]></text>
            </staticText>
            <staticText>
                <reportElement x="280" y="0" width="69" height="24" />
                <textElement verticalAlignment="Bottom" />
                <text><![CDATA[AGE: ]]></text>
            </staticText>
        </band>
    </pageHeader>
    <detail>
        <band height="30">
            <textField>
                <reportElement x="0" y="0" width="69" height="24" />
                <textFieldExpression class="java.lang.String"><![CDATA[$F{id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="140" y="0" width="69" height="24" />
                <textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="280" y="0" width="69" height="24" />
                <textFieldExpression class="java.lang.String"><![CDATA[$F{age}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

But the rows and columns has no border? How do I achieve this in Jasperreport 4.5?

Thanks


Solution 1:

  • You can add borders with help of GUI designer (iReport, for example) or you can add the box element manually (edit the jrxml file) like in this sample:
<textField>
    <reportElement x="29" y="17" width="100" height="20"/>
    <box>
        <topPen lineWidth="1.0"/>
        <leftPen lineWidth="1.0"/>
        <bottomPen lineWidth="1.0"/>
        <rightPen lineWidth="1.0"/>
    </box>
    <textElement/>
    <textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
</textField>
  • In iReport you can use "Padding And Borders" context menu. iReport context menu

  • In Jaspersoft Studio you can set borders with help of Properties dialog (tab Borders).

enter image description here