什么是交叉报表

交叉报表,也是报表当中常见的类型,和分组报表一样,也是基本的报表类型。分组报表是只有行方向上有分组,而交叉报表则是行、列方向都有分组的报表。传统的报表一般都是通过专门的交叉报表生成向导来设计交叉报表。
      交叉报表看似简单,但是在实际应用中,特别是处理中国式复杂报表时,作用巨大;主要是因为中国式报表的自身特点决定的。
  避开纯技术的数据源和运算等等不说,单单说一说中国报表的形式。中国式报表一般都会有格线,这样会使得报表内容一目了然。在格线划分的时候,交叉形式的格线使用率就很高。这样也就解释了为什么微软的办公软件Excel在中国一直很受欢迎(但Excel不是专业的报表软件,所以市场上出现了类Excel报表软件)。其次,报表的逻辑关系还非常复杂,交叉报表类似于数学中的二维数列,即有2个变量共同决定一个数值。中国式报表在绘制时往往就带有这个特点,如果不采用交叉式,又不能达到中国式报表,简单直观的形式要求。
对于普通报表而言,一旦发布到web页面后,其样式就被固定了,如果想把报表换种形式展现通常的做法是重新设计一张报表模板来实现。交叉报表的实现思路:设计单元格表达式根据参数的取值不同而变化,从而实现样式跟随表达式变动。点击一个超链接按钮通过url强制传参给报表中的单元格,从而控制报表的样式。

时间: 2024-12-24 19:52:35

什么是交叉报表的相关文章

灵活数据源的固定行列交叉报表的制作

论坛里,http://bbs.csdn.net/topics/390883416中提的问题,其目的是为了实现一个固定行列的交叉表,用SQL准备好固定行数的数据源非常麻烦.而润乾集算报表则有非常灵活的计算能力,能够充分利用问题特点应付各种非常规的计算需求. 这里就以链接中业务为背景,给出集算报表实现某种固定列交叉报表的方案. 报表背景         源数据例如以下: 现须要在报表中显演示样例如以下内容: 这里要求依照分类统计总记录数.并将每月的记录数分别填充到1-12月中.当中无数据的记录显示为

ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案

原文:ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案 在 ActiveReports 中可以通过矩阵控件非常方便的实现交叉报表,同时还可以设置数据的分组.排序.过滤.小计.合计等操作,可以满足您报表的智能数据分析等需求.在矩阵控件中组的行数和列数由每个行分组和列分组中的唯一值的个数确定.同时,您可以按行组和列组中的多个字段或表达式对数据进行分组.在运行时,当组合报表数据和数据区域时,随着为列组添加列和为行组添加行,矩阵将在页面上水平和垂直增长. 在矩阵控件中,

交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致

在做交叉报表列头的排序时,遇到这三个问题,下面具体来说一下. 设计的数据库的表结构如图1所示: 图1 要处出来student_name_,s.grade_,s.subject_name_,这三个属性,当时我是这样写的sql语句: select  s.student_name_, s.grade_,  s.subject_name_, case  s.subject_name_ when  '语文' then 'A语文' when  '数学' then 'B数学' when  '英语' then 

锐浪 报表, 交叉报表中 对交叉字段,做条件改变背景颜色 .

var fieldCount = Report.RunningDetailGrid.ColumnContent.ContentCells.Count; // 总字段列数 var lockFieldCount = Report.DetailGrid.CrossTab.ListCols; // 锁定字段列数 var crossFieldCount = fieldCount - lockFieldCount; for(var colIndex = 1; colIndex <=crossFieldCou

锐浪 报表, 当多行交叉报表时,对多行交叉报表中自由格中的多个字段控件,进行颜色控制. 取值 判断等实现

需要注意的点是: 1 . 要对自由格中对应的 字段框的背景填充方式改为:填充,否则没有效果. 2 . 代码中红色部门代码: Column 为明细网络对象属性中的 列集合 中的 交叉列的 名称,  Report.RunningDetailGrid.Columns.Item("Column_2") 3.  蓝色部门 为自由格中 控件的索引位置 ,也可以根据字段框的名称来进行控制如:  contentCell.Controls.Item("FieldBox8") 代码如下

用Jasper report来实现交叉报表的增长率计算

来源:     http://community.jaspersoft.com/questions/847490/how-get-annual-growth-rate-crosstab 交叉表的每一列都是动态生成的,进行列间计算时需要动态引用,用Jasper脚本实现此类需求有一定难度,用集算器在数据准备阶段实现则相对简单,下面用例子来说明. 数据库表store存储着多种产品在2014.2015年的销售量,需要用交叉表呈现每种产品每年的销售量,并计算出各产品的年增长率.部分源数据如下: 集算器代码

报表设计--交叉报表-多层交叉

一.新建数据源 二.操作步骤 在C1单元格中填写=to(1,3)设置为横向扩展 在C2单元格中填写=to(21,22)设置为横向扩展 在C3单元格中填写=to(13,15)设置为横向扩展 在A4单元格中填写=to(11,13)设置为纵向扩展 在B4单元格中填写=to(31,33)设置为纵向扩展 在D1单元格中填写=max(c1{}),取C1单元格扩展后的最大值 在D2单元格中填写=sum(c2{}),求C2单元格扩展后的和 在D3单元格中填写=sum(c3{}),求C3单元格扩展后的和 在C4单

双区间交叉报表的制作

使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,比如交叉表的行组和列组都是分段区间,测度(measurem)来自其他数据库表.集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求.下面通过一个例子来说明双区间交叉表的实现过程. 表account_detail的主键为account_no,与表Paysoft_result和NAEDO都是1对多关系.Paysoft_result的外键是custno,NAEDO的外键是custom

双区间交叉报表的实现办法(实例)

使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,比如交叉表的行组和列组都是分段区间,测度(measurem)来自其他数据库表.集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求.下面通过一个例子来说明双区间交叉表的实现过程. 表account_detail的主键为account_no,与表Paysoft_result和NAEDO都是1对多关系.Paysoft_result的外键是custno,NAEDO的外键是custom