2013-01-24 87 views
-1

如何通過分組特定列在iReport 5.0.0中做報告。例如分組表格報告

​​

我可以很容易地做它作爲表格報告,但當涉及到分組,我卡住了。

我想一個表格報告,其中顯示類似這樣的

username category  view 
xmen  news   good 
      media  good 
      radio  bad 
      tv   ok 
Ymen  news   good 
      media  good 
      radio   bad 
      tv   ok 

在哪裏組屬性以及如何做。所有這些將以表格的形式,我無法在這裏做。

請問我可以使用任何一種格式。

+0

@亞歷克斯·K,u能請電話我在哪裏,在報表設計器提供這些功能。 – syncdm2012

回答

0

使用iReport,您可以通過右鍵單擊報告檢查器中的報告名稱和「添加報告組」來添加分組。 知道您需要在查詢設計器中對數據進行分組,並且在報表設計器中添加組將主要添加2個新的波段,這將允許您管理特定於組的報表設計,如突出顯示組名等。 在設計器中添加組還可以讓您管理變量的評估時間,從而使您能夠對每個組中的所有元素進行求和。

但基於您的示例,您可以通過在用戶名列中的文本字段中使用表達式並使用兩個額外變量來解決問題。 添加一個變量等於$ F {用戶名}沒有計算並命名爲「CurrentValue的」 添加第二個變量,它等於$ V {CurrentValue的}並將其命名爲「PREVIOUSVALUE」

已經在列表中在Report Inspector面板中將變量「previousValue」拖到「currentValue」變量的上方。因爲JR執行從上到下的變量,它會首先將null賦值給「previousValue」,然後將當前值賦給「currentValue」,然後在下一行「currentValue」將成爲上一行值,並將賦值爲「previousValue 「,然後」currentValue「將採用當前值。 所以在你的文本字段表達你只需輸入

$V{previousValue}==$V{currentValue} ? "" : $F{username} 

這樣的用戶名時,纔會顯示它出現的第一次。

+0

它會支持表格格式 – syncdm2012

+0

@MrsTang,這很好。如何以表格形式放置所有這些 – syncdm2012

1

或者你可以做以下的(使用的iReport):

  • 添加基於用戶名報告團,不從報告檢查器中添加組標題和頁腳
  • 拖放領域進入報表設計器中的細節帶。
  • 取消選中在如下圖所示打印重複值

所得報告會像選擇包含用戶名的Text field,在屬性面板。 report output

附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="report6" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9ecb5f72-ce8e-4b32-bc4b-124460d6d018"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <queryString> 
     <![CDATA[select * from (

select 'xmen' as username, 'news' as category, 'good' as view 
union select 'xmen', 'media', 'good' 
union select 'xmen', 'radio', 'bad' 
union select 'xmen', 'tv', 'ok' 
union select 'Ymen', 'news', 'good' 
union select 'Ymen', 'media', 'good' 
union select 'Ymen', 'radio', 'bad' 
union select 'Ymen', 'tv', 'ok' 

) tbl 

order by username]]> 
    </queryString> 
    <field name="username" class="java.lang.String"/> 
    <field name="category" class="java.lang.String"/> 
    <field name="view" class="java.lang.String"/> 
    <group name="user"> 
     <groupExpression><![CDATA[$F{username}]]></groupExpression> 
    </group> 
    <columnHeader> 
     <band height="20"> 
      <staticText> 
       <reportElement uuid="6cb3e793-d932-4d29-aca4-3b1efa03a5dd" x="0" y="0" width="185" height="20"/> 
       <textElement/> 
       <text><![CDATA[username]]></text> 
      </staticText> 
      <staticText> 
       <reportElement uuid="341be19e-6a83-4b8d-9878-8e2c8760b014" x="185" y="0" width="185" height="20"/> 
       <textElement/> 
       <text><![CDATA[category]]></text> 
      </staticText> 
      <staticText> 
       <reportElement uuid="8778300d-b296-41d9-9d12-abda95a80c71" x="370" y="0" width="185" height="20"/> 
       <textElement/> 
       <text><![CDATA[view]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="20" splitType="Stretch"> 
      <textField> 
       <reportElement uuid="4d88aa40-ee74-4535-99a4-e3aec64188d2" isPrintRepeatedValues="false" x="0" y="0" width="185" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{username}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement uuid="c098560e-c140-4b9a-9599-ed0875014c0f" x="185" y="0" width="185" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{category}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement uuid="1784b19e-6adb-4d3e-aa04-d172ee39a7cf" x="370" y="0" width="185" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{view}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 
+0

什麼是組頁眉和頁腳?它是頁面還是列標題和頁腳? – syncdm2012

+0

既不使用組頁眉也不使用組頁腳。列標題包含標籤的靜態文本,細節帶包含所有字段。請參閱JRXML以供參考。 – MrsTang