如何在iReport 3.0.0中显示空表?

时间:2013-02-12 03:39:04

标签: jasper-reports ireport

我正在修改一个现有的iReport文件,一个据称要求程序输入的文件。然后将输入放在一个表中,我假设,在数据进入时自动添加行。

但是,该程序没有提供数据,不再需要这样做。所以现在我只需要显示一个空表。

我在iReport中所做的是删除所有参数的痕迹(因为它们不再需要,并复制并粘贴所有单元格,直到它们到达页面底部。现在没有单元格(除了标题)和顶行,因为它们有静态文本)是可见的,其中一个报告甚至可以显示空白页。

我尝试过设置报告属性:无数据时:无数据部分或所有部分 - 无详细信息,但它仍为空,没有可见的单元格。我也尝试在文本字段中放置一个空格,希望它会显示,甚至用矩形替换它们(在另一个报告中有效)。然而,没有任何效果。报告仍然只显示标题。

我该如何解决这个问题?感谢。

这是JRXML:

<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
         name="ApprenticeEmployment1"
         columnCount="1"
         printOrder="Vertical"
         orientation="Landscape"
         pageWidth="1008"
         pageHeight="612"
         columnWidth="948"
         columnSpacing="0"
         leftMargin="30"
         rightMargin="30"
         topMargin="20"
         bottomMargin="20"
         whenNoDataType="AllSectionsNoDetail"
         isTitleNewPage="false"
         isSummaryNewPage="false">
    <property name="ireport.scriptlethandling" value="0" />
    <property name="ireport.encoding" value="UTF-8" />
    <import value="java.util.*" />
    <import value="net.sf.jasperreports.engine.*" />
    <import value="net.sf.jasperreports.engine.data.*" />

    <parameter name="imagedir" isForPrompting="false" class="java.lang.String"/>

    <field name="REGION" class="java.lang.String"/>
    <field name="PROVINCE" class="java.lang.String"/>
    <field name="FULL_QUALIFICATION" class="java.lang.String"/>
    <field name="DELIVERY" class="java.lang.String"/>
    <field name="SECTOR" class="java.lang.String"/>
    <field name="STUDENT_ID" class="java.lang.String"/>
    <field name="LAST_NAME" class="java.lang.String"/>
    <field name="FIRST_NAME" class="java.lang.String"/>
    <field name="MI" class="java.lang.String"/>
    <field name="CONTACT_NUMBER" class="java.lang.String"/>
    <field name="E_MAIL" class="java.lang.String"/>
    <field name="STREET" class="java.lang.String"/>
    <field name="BARANGAY" class="java.lang.String"/>
    <field name="CITY" class="java.lang.String"/>
    <field name="SEX" class="java.lang.String"/>
    <field name="DOB" class="java.lang.String"/>
    <field name="AGE" class="java.math.BigDecimal"/>
    <field name="CIVIL_STAT" class="java.lang.String"/>
    <field name="EDUC_LEVEL" class="java.lang.String"/>
    <field name="DATE_STARTED" class="java.lang.String"/>
    <field name="DATE_FINISHED" class="java.lang.String"/>
    <field name="REMARKS" class="java.lang.String"/>

        <background>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </background>
        <title>
            <band height="51"  isSplitAllowed="true" >
                <staticText>
                    <reportElement
                        x="0"
                        y="30"
                        width="948"
                        height="21"
                        key="staticText-1"/>
                    <box></box>
                    <textElement textAlignment="Center" verticalAlignment="Bottom">
                        <font pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Apprentice Report Form]]></text>
                </staticText>
                <image  hAlign="Center" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                    <reportElement
                        x="238"
                        y="0"
                        width="470"
                        height="37"
                        key="image-1"/>
                    <box></box>
                    <graphicElement stretchType="NoStretch"/>
                    <imageExpression class="java.lang.String"><![CDATA[$P{imagedir}+"goldilocks-small.JPG"]]></imageExpression>
                </image>
            </band>
        </title>
        <pageHeader>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </pageHeader>
        <columnHeader>
            <band height="65"  isSplitAllowed="true" >
                <staticText>
                    <reportElement
                        x="0"
                        y="18"
                        width="34"
                        height="31"
                        key="staticText-3"/>
                    <box>                   <topPen lineWidth="0.25"/>
                    <leftPen lineWidth="0.25"/>
                    <bottomPen lineWidth="0.25"/>
                    <rightPen lineWidth="0.25"/>
</box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font/>
                    </textElement>
                <text><![CDATA[Sex]]></text>
                </staticText>
                <staticText>
                    <reportElement
                        x="271"
                        y="18"
                        width="58"
                        height="31"
                        key="staticText-4"/>
                    <box>                   <topPen lineWidth="0.25"/>
                    <leftPen lineWidth="0.25"/>
                    <bottomPen lineWidth="0.25"/>
                    <rightPen lineWidth="0.25"/>
</box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font/>
                    </textElement>
                <text><![CDATA[Scholarship]]></text>
                </staticText>
                <staticText>
                    <reportElement
                        x="453"
                        y="18"
                        width="42"
                        height="31"
                        key="staticText-5"/>
                    <box>                   <topPen lineWidth="0.25"/>
                    <leftPen lineWidth="0.25"/>
                    <bottomPen lineWidth="0.25"/>
                    <rightPen lineWidth="0.25"/>
</box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font/>
                    </textElement>
                <text><![CDATA[Client Type
]]></text>
                </staticText>
                <staticText>
                    <reportElement
                        x="0"
                        y="1"
                        width="741"
                        height="17"
                        key="staticText-6"/>
            </band>
        </columnHeader>
        <detail>
            <band height="456"  isSplitAllowed="true" >
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                    <reportElement
                        x="0"
                        y="432"
                        width="34"
                        height="18"
                        key="textField-378"
                        stretchType="RelativeToTallestObject"
                        positionType="Float"/>
                    <textElement verticalAlignment="Middle">
                        <font size="8"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                    <reportElement
                        x="0"
                        y="72"
                        width="34"
                        height="18"
                        key="textField-458"
                        stretchType="RelativeToTallestObject"
                        positionType="Float"/>
                    <textElement verticalAlignment="Middle">
                        <font size="8"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <columnFooter>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </columnFooter>
        <pageFooter>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </pageFooter>
        <summary>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </summary>
</jasperReport>

我确实编辑了很多“盒子”,所以如果格式错了,那就是我而不是JRXML本身。

此致 Zack_Falcon

3 个答案:

答案 0 :(得分:3)

要创建一个包含N个空记录的表,即使您没有数据。

  1. 创建一个对象表
  2. 将您的DataSEt附加到此表或使用空数据源
  3. 在“报告检查器”中选择您的表格,然后单击右侧的
  4. 选择:“编辑表数据源”
  5. 在你写的窗口中:new net.sf.jasperreports.engine.JREmptyDataSource(44)
  6. 运行您的报告
  7. 44是显示空记录的数字。

答案 1 :(得分:1)

在表格属性中,在表格部分下选择“所有部分,无详细信息”

答案 2 :(得分:0)

你可以试试这个条件

$P{Parameter}==null ? "All" : $P{Parameter}

如果您没有选择任何输入值,则此条件会为您提供所有文本。