2016-04-25 68 views
1

我有來自DB的數據如下。如何在jasper報告中將表中的值水平地逐個打印爲一個值?

Subject       Mark Grade 
--------- 
COMPUTER SCIENCE    88.00 A2 
TAMIL       88.00 A2 
HINDI       55.00 C1 
MATHS       54.00 C1 
SCIENCE      77.00 B1 
ENGLISH      45.00 C2 

使用碧玉報告我要打印這樣的:

Subject  COMPUTER SCIENCE Tamil HINDI MATHS SCIENCE ENGLISH 
GRADE   A2    A2  C1  C1  B1  C2 

我把一切都放在細節帶,但它打印這樣

Subject  COMPUTER SCIENCE COMPUTER SCIENCE  COMPUTER SCIENCE 
GRADE   A2     A2     A2        

同樣重複所有的主題,因此它打印6個單獨的細節帶爲所有主題,但我希望它是

Subject  COMPUTER SCIENCE  TAMIL HINDI          
GRADE   A2     A2  C1 

請做一些建議?我曾嘗試與列數,報數,表情,但沒有結果

+0

你有沒有試過在碧玉報告中稱爲交叉表的東西 –

+1

是我給了那個也嘗試過,但它不工作。它僅打印了主題:計算機科學。剩餘數據不見了 – Sakthi

回答

1

這是用交叉實現,在你的例子是沒有rowGroup,所以我們需要在固定字符串"Grade"生成一個虛擬rowGroup,則columnGroup$F{Subject}

<?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="grades" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="407ecd26-3880-4351-b7f4-4422fa5adc32"> 
    <style name="Crosstab Data Text" hAlign="Center"/> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <field name="Subject" class="java.lang.String"/> 
    <field name="Mark" class="java.lang.String"/> 
    <field name="Grade" class="java.lang.String"/> 
    <summary> 
     <band height="50"> 
      <crosstab> 
       <reportElement x="0" y="0" width="555" height="50" uuid="c15de662-be8e-4db4-acef-1b71c3201725"/> 
       <crosstabHeaderCell> 
        <cellContents> 
         <staticText> 
          <reportElement style="Crosstab Data Text" x="0" y="0" width="70" height="30" uuid="07cab0ef-f928-4681-86ff-0c38656cdd31"/> 
          <box> 
           <pen lineWidth="0.5"/> 
           <topPen lineWidth="0.5"/> 
           <leftPen lineWidth="0.5"/> 
           <bottomPen lineWidth="0.5"/> 
           <rightPen lineWidth="0.5"/> 
          </box> 
          <textElement verticalAlignment="Middle"/> 
          <text><![CDATA[Subject]]></text> 
         </staticText> 
        </cellContents> 
       </crosstabHeaderCell> 
       <rowGroup name="dummy" width="70"> 
        <bucket class="java.lang.String"> 
         <bucketExpression><![CDATA["GRADE"]]></bucketExpression> 
        </bucket> 
        <crosstabRowHeader> 
         <cellContents backcolor="#F0F8FF" mode="Opaque"> 
          <box> 
           <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
          </box> 
          <textField> 
           <reportElement style="Crosstab Data Text" x="0" y="0" width="70" height="25" uuid="0ec80ead-fa81-4933-b56b-445e14578f6b"/> 
           <textElement verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$V{dummy}]]></textFieldExpression> 
          </textField> 
         </cellContents> 
        </crosstabRowHeader> 
        <crosstabTotalRowHeader> 
         <cellContents/> 
        </crosstabTotalRowHeader> 
       </rowGroup> 
       <columnGroup name="Subject" height="30"> 
        <bucket class="java.lang.String"> 
         <bucketExpression><![CDATA[$F{Subject}]]></bucketExpression> 
        </bucket> 
        <crosstabColumnHeader> 
         <cellContents backcolor="#F0F8FF" mode="Opaque"> 
          <box> 
           <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
          </box> 
          <textField> 
           <reportElement style="Crosstab Data Text" x="0" y="0" width="62" height="30" uuid="304f31c2-426d-4177-aa32-bb7f6694cd6c"/> 
           <textElement verticalAlignment="Middle"/> 
           <textFieldExpression><![CDATA[$V{Subject}]]></textFieldExpression> 
          </textField> 
         </cellContents> 
        </crosstabColumnHeader> 
        <crosstabTotalColumnHeader> 
         <cellContents/> 
        </crosstabTotalColumnHeader> 
       </columnGroup> 
       <measure name="GradeMeasure" class="java.lang.String"> 
        <measureExpression><![CDATA[$F{Grade}]]></measureExpression> 
       </measure> 
       <crosstabCell width="62" height="25"> 
        <cellContents> 
         <box> 
          <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
         </box> 
         <textField> 
          <reportElement style="Crosstab Data Text" x="0" y="0" width="62" height="25" uuid="b10eac33-96fb-4d5d-8c3f-212c72192a3c"/> 
          <textElement verticalAlignment="Middle"/> 
          <textFieldExpression><![CDATA[$V{GradeMeasure}]]></textFieldExpression> 
         </textField> 
        </cellContents> 
       </crosstabCell> 
       <crosstabCell height="25" rowTotalGroup="dummy"> 
        <cellContents backcolor="#BFE1FF" mode="Opaque"> 
         <box> 
          <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
         </box> 
         <textField> 
          <reportElement style="Crosstab Data Text" x="0" y="0" width="50" height="25" uuid="26fc7a85-7738-45e8-81ff-e076bb51d3fd"/> 
          <textFieldExpression><![CDATA[$V{GradeMeasure}]]></textFieldExpression> 
         </textField> 
        </cellContents> 
       </crosstabCell> 
       <crosstabCell width="50" columnTotalGroup="Subject"> 
        <cellContents backcolor="#BFE1FF" mode="Opaque"> 
         <box> 
          <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
         </box> 
         <textField> 
          <reportElement style="Crosstab Data Text" x="0" y="0" width="50" height="25" uuid="82d05499-1fe2-4a97-ad82-23fa974759c5"/> 
          <textFieldExpression><![CDATA[$V{GradeMeasure}]]></textFieldExpression> 
         </textField> 
        </cellContents> 
       </crosstabCell> 
       <crosstabCell rowTotalGroup="dummy" columnTotalGroup="Subject"> 
        <cellContents backcolor="#BFE1FF" mode="Opaque"> 
         <box> 
          <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> 
         </box> 
         <textField> 
          <reportElement style="Crosstab Data Text" x="0" y="0" width="50" height="25" uuid="c6e4a9d8-6c74-4dcc-8617-18ad14e60890"/> 
          <textFieldExpression><![CDATA[$V{GradeMeasure}]]></textFieldExpression> 
         </textField> 
        </cellContents> 
       </crosstabCell> 
      </crosstab> 
     </band> 
    </summary> 
</jasperReport> 

結果

Output

+0

感謝Petter,你救了我,得到了一個解決方案.... – Sakthi

+0

得到了你的jrxml幫助解決方案。很好的解釋。再次感謝很多... – Sakthi

相關問題