2016-04-25 2 views
1

У меня есть данные из БД, как показано ниже.Как напечатать значения из таблицы в по одному значению по горизонтали в отчете о яшме?

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 

Использование Jasper отчета я должен напечатать это следующим образом:

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

Вы пробовали somthing под названием кросс-таблицы в сообщении яшмы –

+1

yup Я дал попробовать с этим, но не работал. Он просто напечатал только SUBJECT: COMPUTER SCIENCE. Оставшиеся данные ушли – Sakthi

ответ

1

Это достигается с помощью кросс-таблицы, в вашем примере нет rowGroup поэтому нам не нужно, чтобы создать фиктивный rowGroup на фиксированной строке "Grade", то 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

Спасибо Петтер, ты спас меня, получил решение .... – Sakthi

+0

Получил решение с помощью вашего jrxml. Хорошее объяснение. Еще раз спасибо ... – Sakthi

Смежные вопросы