ireport 4.5教程之交叉表

合集下载

Excel中的数据表进行交叉分析和数据汇总

Excel中的数据表进行交叉分析和数据汇总

Excel中的数据表进行交叉分析和数据汇总Excel是一款功能强大的电子表格软件,广泛应用于数据管理和数据分析领域。

在Excel中,我们可以利用数据表进行交叉分析和数据汇总,以便更好地理解和解释数据。

本文将介绍如何在Excel中进行这些操作,并提供一些实用的技巧和注意事项。

一、交叉分析交叉分析是指通过对多个变量进行组合,对数据表中的数据进行交叉比较和统计分析,从而探索不同变量之间的关系和趋势。

在Excel中,我们可以利用数据透视表和数据透视图来进行交叉分析。

1. 数据透视表数据透视表是一种快速、灵活且易于使用的分析工具,可以帮助我们从大量的数据中提取有用的信息。

使用数据透视表,我们可以对数据进行透视、汇总、过滤和分析。

创建数据透视表的步骤如下:(1)选择数据表中的任意一个单元格,并点击Excel菜单栏中的“数据”选项卡。

(2)在“数据”选项卡中的“数据工具”分组中,点击“数据透视表”按钮。

(3)选择要分析的数据范围,然后选择创建数据透视表的位置。

(4)在数据透视表字段列表中,将需要进行交叉分析的字段拖放到“行”、“列”或“值”区域中。

(5)根据需要,对数据透视表进行格式化、排序、筛选等操作。

通过数据透视表,我们可以方便地对数据进行交叉分析和统计,比如计算总和、平均值、最大值、最小值等,同时可以根据不同字段的值进行分类汇总。

2. 数据透视图除了数据透视表,Excel还提供了数据透视图的功能,可以直观地展示数据的交叉分析结果。

数据透视图通常以交叉表的形式展示数据,并通过颜色、图表等方式对数据进行可视化呈现。

创建数据透视图的步骤如下:(1)在数据透视表的基础上,点击“数据透视表分析工具”选项卡。

(2)在“工具”选项卡中的“报表”分组中,点击“数据透视图”按钮。

(3)根据需要,选择交叉表的布局和样式。

(4)点击“确定”按钮,生成数据透视图并展示交叉分析的结果。

通过数据透视图,我们可以更直观地理解和解释数据,快速发现数据中的规律和趋势。

JasperReport报表开发之转置交叉表

JasperReport报表开发之转置交叉表

JasperReport报表开发之转置交叉表使⽤Jasper或BIRT等报表⼯具时,常会碰到⼀些很规的统计,⽤报表⼯具本⾝或SQL都难以处理,⽐⽅源数据不符合交叉表的要求,须要转置后再呈现。

集算器具有结构化强计算引擎,集成简单。

能够协助报表⼯具⽅便地实现此类需求。

以下通过⼀个样例来说明转置交叉表的实现过程。

数据库表booking汇总着各年度商品的预定数据。

有四个字段,包含年份和三种预定状态,部分数据例如以下:报表要求呈现指定年份及上⼀年的预定情况。

当中⾏组有三项,即三种预定状态,列组是年份。

測度是当年的预定数据。

此外要汇总出指定年份各预定状态的增长率。

表例⼦如以下:能够看到,这张报表的难点是:源数据⽆法直接⽤于交叉表,汇总列要⽤相对位置来动态计算。

假设能将源数据转置。

并将汇总列事先计算出来,则会显著减少难度,⽐⽅以下这样:以下⽤集算器准备报表所需的数据,代码例如以下:A1=yearBegin=yearEnd-1yearEnd是来⾃报表的參数,表⽰⽤户指定的年份,⽐⽅2014。

A1中的代码⽤来计算上⼀年(⽐⽅2013),为了⽅便引⽤,上⼀年定义为yearBegin。

A2=myDB1.query(“select * from booking where year between ? and ?order by year desc”,yearBegin,yearEnd)这句代码⽤来从数据库查出指定年份及上⼀年的数据。

myDB1是数据源名,指向MYSQL。

函数query可运⾏SQL语句,也能够接受參数。

如果yearEnd=2014,则A2的计算例如以下:A3=create(row,col,value)这句代码⽤来新建序表A3。

A3有三个字段:row、col、value,将来可存储整理之后的数据。

新建后的A3例如以下:须要注意的是。

序表类似数据库结果集,也是结构化⼆维表。

但序表是泛型的,同⼀个字段能够存储不同的数据类型,序表也是有序的,能够按序号訪问数据。

react中 实现table交叉透视表

react中 实现table交叉透视表

一、什么是交叉透视表?交叉透视表是一种数据分析工具,通过行、列以及数据的聚合来展示数据的交叉分析结果。

在数据分析中,交叉透视表可以帮助用户快速、直观地理解数据之间的关系,发现数据内在的规律和趋势。

在实际应用中,交叉透视表通常用于数据的多维分析和报表制作,对于大数据分析和决策支持具有重要的作用。

二、为什么要在React中实现交叉透视表?在Web应用开发中,React作为一种流行的前端框架,被广泛应用于构建复杂的用户界面。

交叉透视表作为数据分析工具,在Web应用中的实现能够让用户直接在页面上进行数据分析和可视化展示,提高了用户的交互体验和工作效率。

将交叉透视表的功能集成到React应用中,可以为用户提供更加丰富、灵活的数据分析工具。

三、实现交叉透视表的关键技术及步骤1. 数据的准备与读取:在React中实现交叉透视表的第一步是准备数据并进行读取。

通常情况下,我们需要将数据从后端或者本地文件中获取并加载到前端页面中。

这里可以使用React提供的组件来实现数据的读取和展示。

2. 交叉表的计算与生成:一旦数据准备就绪,接下来就需要进行交叉表的计算和生成。

这一步通常涉及到对数据进行分组、聚合和透视等操作,以得到用户想要展示的交叉表结果。

在React中,可以借助第三方的数据分析库或者自定义函数来实现交叉表的计算和生成。

3. 表格的展示与交互:最后一步是将计算得到的交叉表展示在页面上,并实现相应的交互功能。

在React中,可以利用表格组件来展示交叉表的结果,并通过事件处理函数来实现用户的交互操作,如排序、筛选、导出等功能。

也可以结合React提供的图表组件,将交叉表的结果以图形化的方式展示出来。

四、React中实现交叉透视表的实际案例以一个实际的案例来展示在React中如何实现交叉透视表。

假设我们有一份销售数据,包括产品类别、销售日期、销售金额等字段,我们希望通过交叉透视表来展示不同产品类别在不同时间段的销售金额总和。

如何使用Excel进行数据表的交叉分析

如何使用Excel进行数据表的交叉分析

如何使用Excel进行数据表的交叉分析数据交叉分析是一种有效的数据分析方法,可以帮助我们发现不同变量之间的关系和趋势。

Excel是一款强大的电子表格软件,提供了丰富的功能和工具,可以方便地进行数据交叉分析。

本文将介绍如何使用Excel进行数据表的交叉分析,并给出相应实例。

步骤一:准备数据表格首先,我们需要准备一个包含待分析数据的表格。

这个表格应该包含多列,每列代表一个变量,每行代表一个数据点。

确保每个变量和数据点都有清晰的标题,以便后续分析。

步骤二:选择数据表格在Excel中,点击并拖动鼠标来选择整个数据表格。

确保选择的区域包含了所有的变量和数据点,不要包含其他无关信息。

步骤三:打开数据分析工具在Excel的菜单栏中,点击“数据”选项,然后选择“数据分析”。

如果没有看到“数据分析”选项,说明此功能未启用,需要先启用。

点击“文件”选项,再选择“选项”,在“附加组件”中启用“数据分析工具”。

步骤四:选择交叉分析工具在“数据分析”对话框中,找到并选择“交叉分析”工具。

点击“确定”按钮进入交叉分析工具。

步骤五:设置交叉分析参数在交叉分析工具中,需要设置一些参数来指定交叉分析的具体方式。

首先,选择需要进行交叉分析的变量,以及设置相应的行和列标签。

其次,选择所需的统计指标,如平均值、总和或计数。

最后,选择输出结果的位置,可以选择在一个新的工作表或已存在的工作表中输出结果。

步骤六:运行交叉分析上述参数设置完成后,点击“确定”按钮,Excel将开始进行交叉分析计算。

这个过程可能需要一些时间,取决于数据的大小和复杂性。

请耐心等待,直到分析完成。

步骤七:查看交叉分析结果Excel完成交叉分析计算后,会将结果显示在选择的输出位置中。

这些结果将按照所选的行和列标签进行分类,并显示所选的统计指标。

可以通过对结果进行排序、筛选和格式化等方式,更好地理解和展示分析结果。

实例演示:为了更好地理解如何使用Excel进行数据表的交叉分析,我们以一个销售数据表为例进行演示。

实用的Excel技巧利用数据表创建交叉报表

实用的Excel技巧利用数据表创建交叉报表

实用的Excel技巧利用数据表创建交叉报表Excel是一款功能强大的办公软件,被广泛应用于数据处理、分析和报表制作等工作中。

在Excel中,利用数据表可以方便地整理和分析大量的数据。

交叉报表作为一种常见的数据分析报表,能够将数据按照不同的维度进行汇总和对比,提供了更加直观和清晰的数据展示方式。

本文将介绍一些实用的Excel技巧,帮助您利用数据表创建交叉报表。

一、数据表的创建与管理1. 数据表的创建:在Excel中创建数据表可以将数据和结构分离,使得数据的管理和分析更加简单和灵活。

首先,将数据导入Excel中,然后选中数据区域,点击“数据”选项卡中的“数据工具”组中的“数据表”按钮,Excel将自动创建一个数据表,同时添加筛选和排序功能。

2. 数据表的管理:在数据表中,可以使用筛选和排序等功能对数据进行管理和分析。

点击数据表的标头上的下拉箭头,可以快速筛选数据。

另外,点击标头上的箭头图标可以对数据进行排序,根据需要将数据按照升序或降序排列。

二、交叉报表的创建与设计1. 数据透视表:在Excel中,使用数据透视表可以轻松地创建交叉报表。

首先,选中需要创建交叉报表的数据表,然后点击“插入”选项卡中的“数据透视表”按钮。

在数据透视表对话框中,将需要分析的字段拖放到相应的区域,如“行”、“列”、“值”和“筛选”区域,Excel会自动根据选择的字段创建交叉报表。

2. 自定义交叉报表:在创建数据透视表的基础上,可以进行进一步的设置和调整,以满足个性化的需求。

点击数据透视表中的数据字段,可以选择相应的汇总方式,如求和、计数、平均值等。

另外,还可以对交叉报表进行样式和格式的设置,例如修改表格的字体、颜色和边框等。

三、交叉报表的数据分析和展示1. 数据汇总分析:交叉报表可以对数据按照不同的维度进行汇总和分析。

例如,在交叉报表中,可以将销售数据按照产品类型和区域进行汇总和分析,了解不同产品在不同区域的销售情况。

同时,还可以根据需要进行数据的透视、钻取和分组等操作,深入挖掘数据背后的规律和趋势。

ireport交叉报表

ireport交叉报表

ireport 交叉报表(转)关键字: ireportjasperReports1.1.1增加了对交叉报表的支持,下午看了下它的三个例子.暂时记下收获:一直对交叉报表的具体定义不太明了.个人理解是报表的行和列都是从数据库中读去的而不是普通那种列固定行是从数据库中读取(这里的数据源不一定是来自关系数据库).crosstab 的dtt定义为:<!ELEMENT crosstab (reportElement, crosstabParameter*, parametersMapExpression?, crosstabDataset?, rowGroup*, columnGroup*, measure*, crosstabCell*, whenNoDataCell?)><!A TTLIST crosstabisRepeatColumnHeaders (true | false) "true"isRepeatRowHeaders (true | false) "true"columnBreakOffset NMTOKEN "10">crosstabParameter:是交叉表中要用到的参数如下:<crosstabParameter name="Country" class="ng.String"><parameterV alueExpression>$F{ShipCountry}</parameterV alueExpression></crosstabParameter>这个就是把总表的一个域定义到交叉表的一个参数Country,这样在交叉表的数据集的查询或其他地方就可以使用这个参数了交叉表的参数定义:<crosstabParameter name="Country" class="ng.String"><parameterV alueExpression>$F{ShipCountry}</parameterV alueExpression></crosstabParameter>这里定义了一个参数Country,他的来源是主表的ShipCountry域.crosstabDataset:交叉表允许有自己的数据集如下:<crosstabDataset><dataset><datasetRun subDataset="Country_Orders"><datasetParameter name="Country"><datasetParameterExpression><![CDA TA[$F{ShipCountry}]]></datasetParameterExpression> </datasetParameter></datasetRun></dataset></crosstabDataset>在这个例子中引用了预定义的子数据集Country_Orders(下面会有这个的定义),并且把子数据集中要用到的一个参数的数据来源传递过去.下面是那个子数据源的定义:<subDataset name="Country_Orders"><parameter name="Country" class="ng.String"/><queryString><![CDA TA[SELECT ShippedDate, ShipRegion, ShipCity, FreightFROM OrdersWHEREShipCountry = $P{Country} ANDShippedDate IS NOT NULL]]></queryString><field name="ShippedDate" class="java.sql.Timestamp"/><field name="ShipRegion" class="ng.String"/><field name="ShipCity" class="ng.String"/><field name="Freight" class="ng.Float"/></subDataset>在这个例子中定义了子数据源Country_Orders,他用到了参数Country,我门可以再上面看到这个参数在交叉表中的定义,以及在交叉表的数据源的指定时把参数的来源ShipCountry也传了过去. 下面是交叉表的列头和行头的来源指定:<rowGroup name="Region" width="50" totalPosition="End"><bucket><bucketExpression class="ng.String">$F{ShipRegion}</bucketExpression></bucket><crosstabRowHeader><cellContents><box leftBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><textField><reportElement x="5" y="5" width="40" height="40"/><textFieldExpression><![CDA TA[$V{Region} == null ? "No region" : $V{Region}]]></textFieldExpression></textField></cellContents></crosstabRowHeader><crosstabTotalRowHeader><cellContents backcolor="#60FFFF"><box leftBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><textField><reportElement x="5" y="5" width="110" height="20"/><textFieldExpression>$P{Country} + " Total"</textFieldExpression></textField></cellContents></crosstabTotalRowHeader></rowGroup>可以看到在上面这段代码中行的标题的指定包含了两部分crosstabRowHeader和crosstabTotalRowHeader.其中bucket来指定这个行标题的分组表达式,同时为他指定了一个名字也就是行分组名字Region,这样在下面可以按一个变量的形式来引用他.列的标题指定与此类似:<columnGroup name="ShipY ear" height="30" totalPosition="End" headerPosition="Stretch"><bucket><bucketExpressionclass="java.util.Date">CrosstabApp.truncateToY ear($F{ShippedDate})</bucketExpression> </bucket><crosstabColumnHeader><cellContents><box topBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><rectangle radius="10"><reportElement x="4" y="4" width="52" height="22"/><graphicElement pen="1Point"/></rectangle><textField pattern="yyyy"><reportElement x="5" y="5" width="50" height="20"/><textElement textAlignment="Center" verticalAlignment="Middle"/><textFieldExpression class="java.util.Date">$V{ShipY ear}</textFieldExpression></textField></cellContents></crosstabColumnHeader><crosstabTotalColumnHeader><cellContents backcolor="#FFFF60"><box topBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><staticText><reportElement x="5" y="5" width="20" height="15"/><text>Total</text></staticText></cellContents></crosstabTotalColumnHeader></columnGroup>下面就是为具体单元格的显示样式及内容:<crosstabCell rowTotalGroup="Region" columnTotalGroup="ShipY ear"><cellContents backcolor="#60FF60"><box bottomBorder="1Point" rightBorder="1Point"/><textField pattern="#0.0"><reportElement x="0" y="0" width="30" height="30" style="Arial_Bold"/><textElement textAlignment="Right" verticalAlignment="Middle"/><textFieldExpression class="ng.Float">$V{FreightSum}</textFieldExpression></textField></cellContents></crosstabCell>这里:rowTotalGroup,columnTotalGroup分别指定了这类单元格要显示的对应行列分组,也可以只有部分指定,如只指定行或列或行和列都不指定,这样分别有他门自己的意思.对于这个我们工可写出4中类型的crosstabCell,再这之前回有个显示内容的定义:如下<measure name="FreightSum" class="ng.Float" calculation="Sum"><measureExpression>$F{Freight}</measureExpression></measure>这里定义了一个变量FreightSum,他的来源是$F{Freight},计算类型是Sum,我们可以按自己的需求改动这些.对于是多大范围的数据进行Sum,就由引用这个变量的crosstabCell 所指定的行和列来划定.对于上面那个就是由Region和ShipY ear来决定的总计.另:我门也可以对行和列进行多个分组,方法类似,具体可参考例子ShipmentsReport。

如何利用Excel进行数据的交叉分析

如何利用Excel进行数据的交叉分析

如何利用Excel进行数据的交叉分析Excel 是一款功能强大的电子表格软件,可以帮助用户处理和分析大量的数据。

其中,交叉分析是一种常用的数据分析方法,通过Excel 的数据透视表功能,可以方便地进行交叉分析。

本文将介绍如何利用Excel 进行数据的交叉分析。

一、数据准备在进行数据的交叉分析之前,首先需要准备好待分析的数据。

通常,数据应该放在一个表格中,每一列代表一个变量,每一行代表一个观察点或者样本。

确保数据的完整性和准确性是进行交叉分析的重要前提。

二、创建数据透视表1. 打开Excel,并将准备好的数据导入到Excel 中。

2. 选中数据区域,点击菜单栏中的“插入”选项,并选择“数据透视表”。

3. 在弹出的对话框中,确认数据区域和位置,点击“确定”。

4. 在数据透视表字段列表中,将需要进行交叉分析的变量拖动到“行标签”和“列标签”之间的区域。

可以将多个变量拖动到同一标签区域进行多重交叉分析。

5. 将需要分析的数值变量拖动到“值”区域,选择相应的统计方法,如计数、求和、平均值等。

6. 根据需要,可以对数据透视表进行进一步的设置和调整,比如筛选数据、设置排序、添加计算字段等。

三、数据分析和解读通过创建的数据透视表,可以进行数据的交叉分析和比较。

根据数据透视表的视图呈现,我们可以得到以下几个方面的信息:1. 变量之间的交叉关系:通过查看数据透视表,可以直观地了解各个变量之间的关系。

比如,通过交叉分析销售数据中的产品类别和销售区域,可以了解不同产品在不同区域的销售情况,进而指导制定销售策略。

2. 统计指标的对比和比较:通过选择不同的统计方法,可以对数据进行比较和分析。

比如,可以比较不同产品的销售额和销售量,找出最畅销的产品。

3. 数据的筛选和过滤:数据透视表还提供了筛选和过滤的功能,可以根据需要快速地筛选出符合条件的数据。

比如,可以筛选出某个时间段内的销售数据,或者某个区域的销售数据,以便进行更加精细的分析。

Excel中的数据透视表计算与交叉报表

Excel中的数据透视表计算与交叉报表

Excel中的数据透视表计算与交叉报表数据透视表是Excel中一个非常强大的数据分析工具,它可以帮助用户快速、灵活地汇总和分析大量的数据。

通过数据透视表,我们可以轻松地对数据进行分类、汇总、计算和分析,从而更好地理解数据背后的规律和趋势。

同时,Excel还提供了交叉报表功能,使得数据透视表更加灵活和强大。

数据透视表的基本操作非常简单,只需要将需要分析的数据拖拽到相应的区域即可。

首先,我们需要选择需要分析的数据范围,包括数据的列名和行名。

然后,我们将需要分析的数据拖拽到数据区域,Excel会自动根据数据的类型进行汇总计算。

例如,我们可以将销售数据按照产品分类和地区进行汇总,得到不同产品在不同地区的销售情况。

除了基本的汇总计算,数据透视表还提供了丰富的计算功能。

通过设置数据透视表的数值字段,我们可以对数据进行求和、平均、计数等计算操作。

例如,我们可以计算不同产品的销售总额、平均销售额和销售数量等。

同时,数据透视表还支持自定义计算项和计算字段,使得我们可以根据具体需求进行更加复杂的计算。

数据透视表的另一个重要功能是数据的筛选和筛选器。

通过设置筛选器,我们可以根据特定的条件对数据进行筛选,从而只显示满足条件的数据。

例如,我们可以根据销售额的大小筛选出销售额最高的产品或者筛选出某个地区的销售情况。

筛选器可以帮助我们更加快速和准确地找到需要分析的数据,提高数据分析的效率和准确性。

除了数据透视表,Excel还提供了交叉报表功能,使得数据透视表更加灵活和强大。

交叉报表可以将数据按照不同的维度进行交叉分析,从而更好地理解数据的关系和影响因素。

通过交叉报表,我们可以将数据按照不同的维度进行交叉分析,例如将销售数据按照产品和时间进行交叉分析,得到不同产品在不同时间的销售情况。

交叉报表可以帮助我们更加全面地了解数据的特点和规律,从而做出更加准确和有针对性的决策。

在使用数据透视表和交叉报表时,我们还需要注意一些细节和技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ireport4.5教程之交叉表一个CrossTabs是一种在设计的时候既不确定行数和也不确定列数的一种表格,在运行环境下它会像下面显示的不同年份的一个销售报表一样。

水果/年份200420052006草莓野生樱桃CrossTabs在jasperresports中从1.1.0版本时开始提供,同时iReport 也从1.1.0开始支持CrossTabs。

Jasperreports的CrossTabs工具允许对行和列的数据进行分组、汇总和自定义每一个cell里的内容。

填充CrossTab的数据可以来自主报表里的dataset 或来自subDataset。

使用iReport里提供的向导我们可以简单快速的创建功能强大的交叉报表组件。

一个CrossTabs本质上是一个表格,行和列的数量取决于填充这个表格的数据。

行和列也可以在groups里做聚合操作。

对于每一个行或列的group我们都可以得到一个细节信息和一个可选的行列数据的汇总。

交叉表向导(Crosstab wizard)为了说明怎么让一个crosstab工作起来,我们将使用向导创建一个crosstab,当我们在工具条里选择crosstab元素并将其添加到报表中时crosstab的向导会自动启动。

还是以DoradoSample里提供的hsql数据里的employee报为例,我们使用包含下面查询语句的空报表开始:Select*from employee我们把crosstab放在报表的底部:summary band在第一步里我们需要选择一个dataset来填充crosstab,我们这里使用主报表里提供的dataset,点击下一步继续。

在第二步里我们需要定义至少一个行分组.我们这里选择对所有记录使用DEPT_ID进行分组。

这样就意味着crosstab的每一行将会采用一个明确的部门编号,这样JasperReports将会使用部门编号对数据集里的数据进行重新整理计算。

使用向导,我们可以定义两个行分组,这是使用向导的局限性所在,事实上,如果你需要的话你可以通过Crosstab的属性设置窗口定义若干个行和列的分组。

点击下一步继续。

和定义行分组一样,从这里我们可以定义两个列分组,这里我们仅使用一个列分组,使用数据中的DEGREE字段对数据进行分组。

该字段的含义是学历,这就表示,我们要做的这个交叉报表是用来计算不同部门员工在学历方面的人数分布情况。

是时候定义detail数据了,一般的,这个detail是使用类似根据country,year得到orders总数或者是相同组合的物品总数的一个聚合函数的计算出来的结果值。

我们这里选择打印员工的数量(Detailfield:ordered,function:count)。

点击下一步继续。

最后一步我们可以为crosstab的布局设定一个布局。

我们可以设置是否能看到表格线、或者是否包括行和列总数统计之类。

我们这里全部选择。

点击finish注意当一个crosstab添加到一个报表中后,会自动在设计窗口中添加一个用来编辑当前crosstab的tab页窗口。

当点击crosstab的tab页,两个新的属性窗口将会被添加在窗口的左边和右边:一个crosstab的结构树,用来显示crosstab的当前选中单元格和帮助相关信息。

一个是crossstab对象列表用来显示和该CrossTab相关的一些variables或fields等。

当点击工具条上的启动按钮后,我们将可以看到引擎生成的如下效果的报表:最后一列包含每一行交叉所有列的总计,最后一行包含每一列交叉所有行的总计。

列,行,单元格(Columns,rows,cells)一个crosstab至少必须有一个行分组和一个列分组,每一个行和列的分组都有一个可选的行/列的统计。

下面图中所示的是一个基本的由一个行列分组构成的crosstab。

Crosstab headercell Column group1headerColumn group1total headerRow group1headerdetail Col group1totalRow group1total header Row group1total Row group1total/column group1total当再次添加一个行分组时,这个crosstab将会显示出如下效果:Crosstab headercell Column group1headerColumn group1total headerRow group1 headerRowgroup2headerdetail Col group1totalRowgroup2totalheaderRow group2total Row group2total/column group1totalRow group1total header Row group1total Row group1total/column group1total行和列(Rows and columns)一个行或列的分组可能通过crosstab的属性窗口来对它进行修改(在crosstab编辑器右键菜单里选择Crosstab properties)。

点击“row and column groups”的标签页。

在这里我们可以看到已经定义好的行或列的分组。

添加一个新的分组请点击名为Add的按钮。

所有分组必须有一个唯一的名称。

当你添加或修改一个行分组时,你可以设置row group header 的宽度。

Column group1Column group1ROW GROUPWIDTHheader total header Row group1headerdetail Col group1totalRow group1total header Row group1total Row group1total/column group1total“bucket”是分组的标准,它通过一个java类来定义。

在一个bucket表达式里,你可以使用主报表里所有的fields/variables/parameters。

但是,如果你选择使用subdataset来填充crosstab,那么必须使用subdataset里提供的fields/variables/parameters。

一个header的单元格增长依赖于它所跨越的行数。

你可以选择多个元素放置在header里。

top middlebottomstretch最后,你可以选择是否打印出总计的结果。

这些选项是:None:没有总计行被打印Start:总计行打印在detail行之前End:总计行打印在detail行之后创建column的group是非常简单的。

定义column group时你可以定义column的高度来替代行高(看下图)Column groupheightColumn group1 header Column group1 total headerRow group1headerdetail Col group1totalRow group1total header Row group1total Row group1total/column group1total当Bucket在行分组里时,header的单元格内容的定位相似。

但是在这个用例中,details可以改变header宽度而不是高度。

leftcenterrightstretch再一次,如果打印总计列的话,你可以做一些选择。

各选项如下:None:没有总计列被打印Start:总计列在detail列之前打印End:总计列在detail列之后打印列和行的高度可以很容易的在crosstab编辑器里通过鼠标拖曳表格线的方式改变。

当一个行或列添加到crosstab里时,一个特殊的用来引用bucket表达式的变量将要被创建。

它和新的group有相同的名称。

你可以从crosstab objects 标签里通过查找绿色小点的方式来定位这个bucket variable。

iReport为group创建新的header cells是很简单的,这个操作不需要添加任何新的额外元素到crosstab里。

你可以根据你的喜好来填充cells,最好的方式是通过拖曳把bucket从crosstab objects列表拖到新的单元格里。

在上图中,你可以看到加在一个新加的嵌套在column group里四个新添加到crosstab里的单元格,group header单元格,group total header单元格。

你可以使用”up”和”down”按钮来更改你的group的嵌套顺序。

下图中所示的crosstab就是在图16.14在SEX的group被向上移后的效果。

图16.16MONTH group向上移后的效果16.2.2、单元格(cells)每一个行和列的交叉处定义一个单元格,我们有header单元格,total单元格,detail单元格和一个可选的“when-no-data”单元格。

单元格可以包含一个类似于textfields,static texts,rectangle,images之类元素的集合,但是他们不能包含一个SubReport,一个chart,或者一个crosstab。

你可以去修改每一个单元格的背景色和单元格的borders:移动鼠标在一个单元格上并且按右键在弹出的菜单中选择“cell properties”打开单元格属性编辑窗口。

从这个对话框中你可以修改单元格的外观。

16.2.3、特殊单元格(Special cells)如果一个crosstab不能包含一些数据,你可以选择打印别的东西来替代。

例如,你可以包含一条消息,方法是,你必须编辑“when-no-data”单元格。

在crosstab上右键勾选弹出菜单中的“when-no-data default cell”复选框。

这个操作完成后将会出现一种很明显的编辑模式,你可以操作“when-no-data”单元格的内容。

“when-no-data”单元格和crosstab元素有相同的尺寸。

如果没有数据展示的话它将替代crosstab打印。

单元格橙色的边框标志出你可以编辑的单元格区域。

可以在这个单元格里添加一个或多个元素。

在一个crosstab里,所有的元素关联一个单元格,如果一个元素在单元格外面或部分在单元格外面,这是不正确的放置方式并且当编译的时候jasperreports将会抛出异常。

iReport在界面中标识这个错误会以红色的框显示。

16.2.4、度量(Measures)在crosstab里每一个元素的表达式(如textfield表达式)可以包含唯一的measure。

相关文档
最新文档