如何在Jasper Report TextField中添加选项卡

时间:2017-03-01 03:59:09

标签: jasper-reports

我想将标签添加到我的Jasper模板中的文本字段中。以下是我的文字字段。

<staticText>
    <reportElement key="" style="Table_CH" positionType="Float" x="0" y="37" width="802" height="112" uuid="db0d6ece-871a-4e7d-8f74-0abca53b1280"/>
    <textElement markup="styled">
        <font fontName="SansSerif" size="8" isBold="false"/>
        <paragraph lineSpacing="Single"/>
    </textElement>
    <text>
        <![CDATA[ Reader - please note: <li>List element1</li><li>List element2</li>]]>
    </text>
</staticText>

我想在每个列表元素前放置一个标签。

2 个答案:

答案 0 :(得分:2)

子弹完成后的添加标签符号有几种方式:

  • 使用\t(制表符)sybmol
  • 使用&#09;在html代码中创建标签
  • 使用&emsp;字符实体

实施例

<?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="Tabs sample" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="AllSectionsNoDetail" columnWidth="583" leftMargin="2" rightMargin="10" topMargin="2" bottomMargin="2">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <title>
        <band height="283">
            <textField>
                <reportElement positionType="Float" x="10" y="20" width="802" height="53" />
                <textElement markup="styled"/>
                <textFieldExpression><![CDATA["List without tabs:<li>List element1</li><li>List element2</li>"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement positionType="Float" x="10" y="90" width="802" height="53" />
                <textElement markup="styled"/>
                <textFieldExpression><![CDATA["List with basic tab:<li>\tList element1</li><li>\tList element2</li>"]]></textFieldExpression>
            </textField>

            <textField>
                <reportElement positionType="Float" x="10" y="160" width="802" height="53" />
                <textElement markup="html"/>
                <textFieldExpression><![CDATA["List with html tab:<li>&#09;List element1</li><li>&#09;List element2</li>"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement positionType="Float" x="10" y="230" width="802" height="53" />
                <textElement markup="html"/>
                <textFieldExpression><![CDATA["List with emsp tab:<li>&emsp;List element1</li><li>&emsp;List element2</li>"]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>

请注意,我使用 textField 来显示\t符号。

输出结果

Jaspersoft Studio 的结果将是:

The preview in JSS

更多信息:

答案 1 :(得分:0)

要在项目符号之前添加空格,您可以使用 html 组件和真正的 html 代码。该组件不提供复杂的html代码,只提供基本代码。

实施例

<?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="Html component" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <parameter name="htmlCode" class="java.lang.String">
        <defaultValueExpression><![CDATA["<div>\n" +
                    "<h3>List of elements</h3>\n" +
                    "<ul>\n" +
                    "<li>element1</li>\n" +
                    "<li>element2</li>\n" +
                    "<li>element3</li>\n" +
                    "</ul>\n" +
                    "</div>"]]></defaultValueExpression>
    </parameter>
    <title>
        <band height="742">
            <componentElement>
                <reportElement x="0" y="0" width="190" height="70"/>
                <hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="RealHeight" horizontalAlign="Left" verticalAlign="Top">
                    <hc:htmlContentExpression><![CDATA[$P{htmlCode}]]></hc:htmlContentExpression>
                </hc:html>
            </componentElement>
        </band>
    </title>
</jasperReport>

我已使用参数设置html代码以显示列表。您可以使用代码来获得更好的结果。

输出结果

Jaspersoft Studio的结果将是:

The preview in JSS

更多信息: