2013-01-02 35 views
2

我正在使用iReports版本3.7.6。 我通過將它與使用數據集的查詢相關聯來動態生成一個表。在關聯的查詢沒有記錄時在iReport中打印空表

當查詢返回記錄時,我得到一個包含所有記錄的表格。

但是,當查詢返回零記錄時,我需要顯示一個空表。但我正在變成一條橫線。

下面是碧玉XML文件的一部分:我已經使用

<componentElement> 
    <reportElement x="131" y="11" width="424" height="24"/> 
    <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical"> 
     <datasetRun subDataset="pmDataSet"> 
      <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
     </datasetRun> 
     <jr:listContents height="24" width="424"> 
      <textField> 
       <reportElement x="0" y="0" width="134" height="22"/> 
       <box> 
        <topPen lineWidth="0.5"/> 
        <rightPen lineWidth="0.5"/> 
       </box> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{COLUMN_1}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="134" y="0" width="120" height="22"/> 
       <box> 
        <topPen lineWidth="0.5"/> 
        <rightPen lineWidth="0.5"/> 
       </box> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[($F{COLUMN_2}) ? $F{COLUMN_2} : "(Blank)"]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="254" y="0" width="170" height="22"/> 
       <box> 
        <topPen lineWidth="0.5"/> 
        <rightPen lineWidth="0.5"/> 
       </box> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{COLUMN_3}]]></textFieldExpression> 
      </textField> 
     </jr:listContents> 
    </jr:list> 
</componentElement> 

這裏的「名單」元素(JR:列表)和與數據集相關聯的。

+0

[刪除文本字段,如果數據源中的值爲空?](http://stackoverflow.com/questions/7524124/remove-text-field-if-value-in-datasource-is-empty)& [Jasper the document has no page](http://stackoverflow.com/q/13824125/876298)&[將顏色應用於找不到記錄的消息](http://stackoverflow.com/q/10908333/876298) –

回答

2

據我所知,這不能用一個表來實現。但是,仍然存在解決方法。

使用a Subreport而不是表格。使用表格完成的所有事情也可以使用子報表完成。只有你需要照顧的是這個屬性。

When No Data

設置它要麼

  • All Sections No Detail:顯示只有報頭信息
  • No Data Section:使得可以顯示在No Data頻帶的自定義消息。

希望這有助於。

+0

@貴族bhaskar所以你使用子報表,而不是表組件? – coastline