2012-07-12 61 views
0

必須用JasperReports生成一個簡單的csv文件。用JasperReports生成csv

這是最簡單的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="report5a" 
language="groovy"> 

<field name="col1" class="java.lang.String"/> 
<field name="col2" class="java.lang.Integer"/> 
<field name="col3" class="java.lang.Integer"/> 
<field name="col4" class="java.lang.String"/> 
<detail> 
    <band height="16"> 
     <textField> 
      <reportElement x="0" y="0" width="1000" height="15"/> 
      <textFieldExpression><![CDATA[$F{col1}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="1000" y="0" width="1000" height="15"/> 
      <textFieldExpression><![CDATA[$F{col2}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="2000" y="0" width="1000" height="15"/> 
      <textFieldExpression><![CDATA[$F{col3}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement x="3000" y="0" width="1000" height="15"/> 
      <textFieldExpression><![CDATA[$F{col4}]]></textFieldExpression> 
     </textField> 
    </band> 
</detail> 
</jasperReport> 

這是工作,但爲什麼我應該提供寬度或高度參數??? 如果x和width屬性太低,那麼這些值將被剪切。例如,如果所有的值(前面提到)除以1000,那麼結果將只包含4個字符。

想法?

感謝

Zsom

+0

[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)文件它是一個正義的文本文件。你在說什麼寬度和高度參數? – 2012-07-12 14:14:21

+0

我必須genarete從數據庫查詢csv。我說這個寬度和高度參數: zsom 2012-07-12 14:44:13

回答

2

JasperReports的肯定可以產生CSV文件。但如果這是你唯一的目標,那麼比JR有更好的選擇。它比你需要的大得多。

爲了避免像現在這樣設置愚蠢的寬度,您應該設置屬性net.sf.jasperreports.print.keep.full.text

編輯:與該屬性設置,那麼你的字段寬度可以是任何正值。您不必擔心將它們放寬到足以容納文本而不進行包裝。

+0

我知道有更好的選擇,但我必須使用它。 該屬性可以防止文本切割,所以對我很有用。 但我仍然想要關心寬度和x屬性。 – zsom 2012-07-13 15:15:29

+0

不,你不需要擔心寬度。是的,你需要擔心x屬性。是的,如果你被告知要用螺絲刀將釘子釘在板子上......可以這樣做。祝你好運。 – mdahlman 2012-07-13 17:39:52

+0

由於最小寬度爲1是必要的,但你是對的。 謝謝 – zsom 2012-07-16 11:54:39