`

使用ireport3.0与ireport3.5一起设计交叉报表crosstab

阅读更多

交叉报表crosstab:ireport3.0.0右键点击切换到交叉表设计页,首先增加一个dataset,查询sql如下:

 

select user_id_atte, to_char(attendance_time,'yyyy-mm-dd') attendance_time from t_attendance_time t where

t.ATTENDANCE_AVALID='Y'
and t.ATTENDANCE_TIME > to_date('2010-9-10','yyyy-mm-dd')

 

一个交叉报表实例:test.jrxml:

<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"

"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
   name="crosstab2"
   columnCount="1"
   printOrder="Vertical"
   orientation="Portrait"
   pageWidth="595"
   pageHeight="842"
   columnWidth="535"
   columnSpacing="0"
   leftMargin="20"
   rightMargin="20"
   topMargin="20"
   bottomMargin="20"
   whenNoDataType="NoPages"
   isTitleNewPage="false"
   isSummaryNewPage="false">
 <property name="ireport.scriptlethandling" value="0" />
 <property name="ireport.encoding" value="UTF-8" />
 <import value="java.util.*" />
 <import value="net.sf.jasperreports.engine.*" />
 <import value="net.sf.jasperreports.engine.data.*" />

 <style
  name="Crosstab Data Text"
  isDefault="false"
  hAlign="Center"
 >
 </style>

 <subDataset name="dataset1" >

  <queryString><![CDATA[select user_id_atte, to_char(attendance_time,'yyyy-mm-dd') attendance_time from

t_attendance_time t where t.ATTENDANCE_AVALID='Y'
and t.ATTENDANCE_TIME > to_date('2010-9-10','yyyy-mm-dd')]]></queryString>

  <field name="USER_ID_ATTE" class="java.math.BigDecimal"/>
  <field name="ATTENDANCE_TIME" class="java.lang.String"/>

 </subDataset>

 <queryString><![CDATA[select user_id,username from t_user]]></queryString>

 <field name="USER_ID" class="java.math.BigDecimal"/>
 <field name="USERNAME" class="java.lang.String"/>

  <background>
   <band height="0"  isSplitAllowed="true" >
   </band>
  </background>
  <title>
   <band height="79"  isSplitAllowed="true" >
    <staticText>
     <reportElement
      x="232"
      y="28"
      width="100"
      height="20"
      key="staticText"/>
     <box></box>
     <textElement>
      <font/>
     </textElement>
    <text><![CDATA[Static text]]></text>
    </staticText>
   </band>
  </title>
  <pageHeader>
   <band height="0"  isSplitAllowed="true" >
   </band>
  </pageHeader>
  <columnHeader>
   <band height="0"  isSplitAllowed="true" >
   </band>
  </columnHeader>
  <detail>
   <band height="0"  isSplitAllowed="true" >
   </band>
  </detail>
  <columnFooter>
   <band height="0"  isSplitAllowed="true" >
   </band>
  </columnFooter>
  <pageFooter>
   <band height="50"  isSplitAllowed="true" >
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      x="232"
      y="12"
      width="80"
      height="20"
      key="textField"/>
     <box></box>
     <textElement textAlignment="Right">
      <font/>
     </textElement>
    <textFieldExpression   class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+"

of"]]></textFieldExpression>
    </textField>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Report"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      x="312"
      y="12"
      width="40"
      height="20"
      key="textField"/>
     <box></box>
     <textElement>
      <font/>
     </textElement>
    <textFieldExpression   class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]

></textFieldExpression>
    </textField>
   </band>
  </pageFooter>
  <summary>
   <band height="802"  isSplitAllowed="true" >
    <crosstab >
     <reportElement
      x="0"
      y="0"
      width="555"
      height="802"
      key="crosstab"/>
     <crosstabDataset>
      <dataset >
       <datasetRun subDataset="dataset1">
        <connectionExpression><![CDATA[$P

{REPORT_CONNECTION}]]></connectionExpression>
       </datasetRun>
      </dataset>
     </crosstabDataset>
     <crosstabHeaderCell>      

<cellContents mode="Transparent">
     <box></box>
    <rectangle>
     <reportElement
      x="0"
      y="0"
      width="70"
      height="30"
      key="rectangle-1"/>
     <graphicElement stretchType="NoStretch"/>
    </rectangle>
    <line direction="TopDown">
     <reportElement
      x="0"
      y="1"
      width="70"
      height="28"
      key="line-1"/>
     <graphicElement stretchType="NoStretch"/>
    </line>
    <staticText>
     <reportElement
      x="45"
      y="3"
      width="22"
      height="12"
      key="staticText-1"/>
     <box></box>
     <textElement>
      <font pdfFontName="Helvetica-Bold" size="8" isBold="true"/>
     </textElement>
    <text><![CDATA[日期]]></text>
    </staticText>
    <staticText>
     <reportElement
      x="2"
      y="16"
      width="27"
      height="11"
      key="staticText-1"/>
     <box></box>
     <textElement>
      <font pdfFontName="Helvetica-Bold" size="8" isBold="true"/>
     </textElement>
    <text><![CDATA[用户 id]]></text>
    </staticText>
      </cellContents>
     </crosstabHeaderCell>     <rowGroup

name="USER_ID_ATTE" width="70" totalPosition="End">
      <bucket>
       <bucketExpression class="java.math.BigDecimal"><![CDATA[$F

{USER_ID_ATTE}]]></bucketExpression>
      </bucket>
      <crosstabRowHeader>
      <cellContents backcolor="#F0F8FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="70"
      height="25"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.math.BigDecimal"><![CDATA[$V{USER_ID_ATTE}]]

></textFieldExpression>
    </textField>
      </cellContents>
      </crosstabRowHeader>
      <crosstabTotalRowHeader>
      <cellContents backcolor="#BFE1FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <staticText>
     <reportElement
      x="0"
      y="0"
      width="70"
      height="25"
      key="staticText"/>
     <box></box>
     <textElement textAlignment="Center" verticalAlignment="Middle">
      <font/>
     </textElement>
    <text><![CDATA[Total USER_ID_ATTE]]></text>
    </staticText>
      </cellContents>
      </crosstabTotalRowHeader>
     </rowGroup>
     <columnGroup name="ATTENDANCE_TIME" height="30" totalPosition="End"

headerPosition="Center">
      <bucket>
       <bucketExpression class="java.lang.String"><![CDATA[$F

{ATTENDANCE_TIME}]]></bucketExpression>
      </bucket>
      <crosstabColumnHeader>
      <cellContents backcolor="#F0F8FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="67"
      height="30"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.lang.String"><![CDATA[$V{ATTENDANCE_TIME}]]

></textFieldExpression>
    </textField>
      </cellContents>
      </crosstabColumnHeader>
      <crosstabTotalColumnHeader>
      <cellContents backcolor="#BFE1FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <staticText>
     <reportElement
      x="0"
      y="0"
      width="72"
      height="30"
      key="staticText"/>
     <box></box>
     <textElement textAlignment="Center" verticalAlignment="Middle">
      <font/>
     </textElement>
    <text><![CDATA[Total ]]></text>
    </staticText>
      </cellContents>
      </crosstabTotalColumnHeader>
     </columnGroup>

     <measure name="USER_ID_ATTEMeasure" class="java.math.BigDecimal"

calculation="Count">
      <measureExpression><![CDATA[$F{USER_ID_ATTE}]]

></measureExpression>
     </measure>
     <crosstabCell width="68" height="25">
      <cellContents mode="Transparent">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="67"
      height="25"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.math.BigDecimal"><![CDATA[$V

{USER_ID_ATTEMeasure}]]></textFieldExpression>
    </textField>
      </cellContents>
     </crosstabCell>
     <crosstabCell width="68" height="25" rowTotalGroup="USER_ID_ATTE">
      <cellContents backcolor="#BFE1FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="67"
      height="25"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.math.BigDecimal"><![CDATA[$V

{USER_ID_ATTEMeasure}]]></textFieldExpression>
    </textField>
      </cellContents>
     </crosstabCell>
     <crosstabCell width="73" height="25" columnTotalGroup="ATTENDANCE_TIME">
      <cellContents backcolor="#BFE1FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="72"
      height="25"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.math.BigDecimal"><![CDATA[$V

{USER_ID_ATTEMeasure}]]></textFieldExpression>
    </textField>
      </cellContents>
     </crosstabCell>
     <crosstabCell width="73" height="25" rowTotalGroup="USER_ID_ATTE"

columnTotalGroup="ATTENDANCE_TIME">
      <cellContents backcolor="#BFE1FF" mode="Opaque">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
    <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now"

hyperlinkType="None"  hyperlinkTarget="Self" >
     <reportElement
      style="Crosstab Data Text"
      x="0"
      y="0"
      width="72"
      height="25"
      key="textField"/>
     <box></box>
     <textElement verticalAlignment="Middle">
      <font/>
     </textElement>
    <textFieldExpression   class="java.math.BigDecimal"><![CDATA[$V

{USER_ID_ATTEMeasure}]]></textFieldExpression>
    </textField>
      </cellContents>
     </crosstabCell>
     <whenNoDataCell>      

<cellContents mode="Transparent">
     <box>     <pen lineWidth="0.5"

lineStyle="Solid" lineColor="#000000"/>
     <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
     <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
      </cellContents>
     </whenNoDataCell>     </crosstab>
   </band>
  </summary>
</jasperReport>

 

 

 

 

 

分享到:
评论

相关推荐

    ireport 3.0使用实例

    【ireport 3.0使用实例】中,ireport是一个报表设计工具,它允许开发者创建复杂的报表,包括普通报表、交叉报表和分组报表。交叉报表(CrossTabs)是ireport的一个重要特性,用于处理动态的行数和列数,非常适合展示...

    ireport交叉报表自定义排序

    在处理复杂的报表设计时,特别是使用iReport工具创建交叉报表(Crosstab)的过程中,常常会遇到需要对数据进行特定排序的需求。默认情况下,交叉报表中的数据通常按照字段的自然顺序或ID进行排序。然而,在某些情况...

    ireport开发交叉报表资料及笔记

    Ireport是一款强大的开源报表设计工具,它是JasperReport库的一部分,专门用于创建复杂的报表,包括交叉报表。在这个资料中,我们将深入探讨ireport如何开发交叉报表,并结合实际项目经验进行讲解。 一、ireport...

    关于ireport交叉报表

    通过使用iReport交叉报表,可以轻松地创建复杂的报表,并且可以与 JasperReports 集成使用。 结论 iReport交叉报表是iReport JasperReports1.1.1版本中新增加的功能之一,它允许用户创建交叉报表,即使报表的行和...

    用iReport制作交叉表(CrossTabs).doc

    iReport 是一个流行的开源报表工具,提供了强大的报表设计和生成功能。其中,交叉表(CrossTabs)是 iReport 中的一个重要组件,允许用户创建复杂的交叉报表。下面是关于 iReport 制作交叉表的详细知识点: 什么是...

    iReport 绘制报表步骤

    本篇文章将详细讲解如何使用iReport来绘制报表,包括简单的报表设计和交叉报表(crosstable)的绘制步骤。 1. **安装与启动iReport** 在开始绘制报表之前,你需要先下载并安装iReport。访问官方网站获取最新版本的...

    IReport动态列

    IReport 动态列详解 IReport 是一个功能强大的报表...通过使用 Crosstab 组件和自定义排序,可以实现复杂的报表设计需求。本文详细介绍了 IReport 动态列的制作和排序,希望能够帮助读者更好地掌握 IReport 的功能。

    iReport中文教程(目前最全的)

    iReport中文教程旨在为用户提供一个全面、易于理解的学习资源,使用户能够全面掌握iReport的各项功能与报表设计技巧。 ### 二、开始 #### 2.1 运行环境(Requirements) iReport可以在多种操作系统上运行,包括...

    iReport 的学习教程+例子

    iReport是一个开源的报表设计器,它使用Java语言编写,可以生成复杂的报表,并支持多种输出格式,如PDF、HTML、XML等。iReport主要用于设计和生成报表,具有强大的报表生成能力。 报表结构: * Title Band:报表的...

    JasperReport+iReport整合的Web报表开发

    虽然iReport提供了可视化的报表设计界面,简化了开发过程,但了解其背后的原理和技术细节仍然是非常必要的。随着技术的发展,未来还会有更多新的工具和技术出现,为Web报表开发带来更多的可能性。

    iReport-JasperReports报表开发指南

    iReport提供了一个可视化的报表设计环境,使得用户能够快速地创建出JasperReports报表。 #### 2. Getting started 在这一章节中,我们将了解iReport运行所需的环境,以及如何获取iReport的源码或安装文件,并在...

    iReport-Ultimate-Guide中文手册

    该手册包含了丰富的技巧与实践案例,适合于希望深入了解JasperReports报表设计与开发的读者。 ##### 1.1 iReport的特点 iReport是一款开源的报表设计器,它是JasperReports生态系统中的一个重要组成部分。iReport...

    iReport中文教程.doc

    iReport是一款功能强大且流行的开源报表设计器,能够创建复杂的报表,100%使用Java语言编写。该教程详细介绍了iReport的基本概念、安装、报表结构、报表元素等知识点。 iReport简介 iReport是一款功能强大且流行的...

    iReport用户手册

    iReport是一款强大的报表设计工具,采用纯Java语言开发,是全球范围内广受欢迎的开源报表设计器。其图形化的操作界面使得用户可以快速创建复杂的报表,功能特点包括: - **拖拽式编辑**:通过直观的界面,用户可以...

    Jasper简单使用

    ### Jasper与iReport基础知识及应用 #### 一、JasperReport与iReport简介 ...通过以上步骤,可以有效地利用iReport进行报表设计,并结合Java程序实现报表的自动化生成。这对于需要定期生成报表的应用场景非常有用。

    ireport excel匯出 如何帶有顏色輸出1

    在使用交叉表(Crosstab)时,要特别注意,报表中的字段和参数无法用于条件样式,需使用crosstab内部定义的变量。 总之,通过巧妙地使用iReport的样式、条件和颜色属性,我们可以创建出富有层次感、易于阅读的Excel...

    jasperReport动态列的实现

    实现了jasperReport进行报表动态列的实现,使用者只需要利用eclipse将工程文件导入,即可查看运行结果的展示,不需要其他的配置和jar包如果想进行动态展示只需要修改构造参数就可以看到动态的展示

Global site tag (gtag.js) - Google Analytics