2012-09-14 2 views

답변

5

매우 쉽습니다. 테이블 구성 요소에 새 데이터 소스를 추가 한 다음이 구성 요소에서이 데이터 소스 (데이터 소스)를 사용해야합니다.

샘플 jrxml :

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport ... whenNoDataType="AllSectionsNoDetail" ...> 
    <style name="table"> 
     <box> 
      <pen lineWidth="1.0" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_CH" mode="Opaque" backcolor="#BFE1FF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <style name="table_TD" mode="Opaque" backcolor="#FFFFFF"> 
     <box> 
      <pen lineWidth="0.5" lineColor="#000000"/> 
     </box> 
    </style> 
    <subDataset name="tableDataset"> 
     <queryString language="SQL"> 
      <![CDATA[SELECT id, city, street FROM address ORDER BY city]]> 
     </queryString> 
     <field name="ID" class="java.lang.Integer"/> 
     <field name="CITY" class="java.lang.String"/> 
     <field name="STREET" class="java.lang.String"/> 
     <group name="CITY"> 
      <groupExpression><![CDATA[$F{CITY}]]></groupExpression> 
     </group> 
    </subDataset> 
    <title> 
     <band height="58" splitType="Stretch"> 
      <componentElement> 
       <reportElement key="table" style="table" x="0" y="0" width="299" height="46"/> 
       <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd"> 
        <datasetRun subDataset="tableDataset"> 
         <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        </datasetRun> 
        <jr:column width="90"> 
         <jr:groupHeader groupName="CITY"> 
          <jr:cell height="30" rowSpan="1"> 
           <textField> 
            <reportElement x="0" y="0" width="90" height="30"/> 
            <textElement/> 
            <textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression> 
           </textField> 
          </jr:cell> 
         </jr:groupHeader> 
         <jr:columnHeader style="table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="90" height="30"/> 
           <textElement/> 
           <text><![CDATA[Id]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="table_TD" height="20" rowSpan="1"> 
          <textField> 
           <reportElement x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:columnHeader style="table_CH" height="30" rowSpan="1"> 
          <staticText> 
           <reportElement x="0" y="0" width="90" height="30"/> 
           <textElement/> 
           <text><![CDATA[Street]]></text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell style="table_TD" height="20" rowSpan="1"> 
          <textField> 
           <reportElement x="0" y="0" width="90" height="20"/> 
           <textElement/> 
           <textFieldExpression><![CDATA[$F{STREET}]]></textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 
     </band> 
    </title> 
</jasperReport> 

의 iReport의 디자인은 다음과 같습니다

  • 주요 보고서보기 :

enter image description here

  • 구성 요소보기 : 나는 주요 데이터 소스를 삭제하고 제목 밴드에 구성 요소를 넣어했습니다이 샘플에서

enter image description here

. NoDataType = "AllSectionsNoDetail" 보고서를 표시 할 때를 설정했습니다.

보고서의 데이터는 도시 필드로 그룹화됩니다.

+0

재스퍼 5.1을 사용하면 작동하지 않습니다.'접근 할 수있는 메소드가 없습니다 : 객체의 addElement() 객체 : net.sf.jasperreports.engine.design.JRDesignGroup'. 5.6을 사용합니까? – CycDemo

+0

@AlexK iReport 5.6을 사용하는 방법을 알려주십시오. – user3714598

관련 문제