随笔 - 225  文章 - 98  trackbacks - 0
<2011年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

随笔分类

相册

报表工具厂商们

搜索

  •  

最新评论

阅读排行榜

一. 横表&纵表:

   

数据库表按照存储的数据结构不同区分为横表与纵表,通过如下数据的存储我们分别对横表与纵表进行简单介绍:

   

横表:

   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb1.jpg

   

纵表:

   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb2.jpg

   

由图12可以看出,若我们要将每种产品的信息罗列在报表中展示,使用横表将会非常方便,直接将各字段拖进设计器对应标题的单元格即可,字段间不需要考虑任何逻辑关(默认有扩展关系)如下图:

   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb3.jpg

   

预览如下:

   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb4.jpg

   

二. Java报表工具FineReport实现纵表转为横表显示:

   

使用纵表时,想达到如图4的效果,也很简单:

   


   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb5.jpg

   

其中:

   

单元格      列名        设置属性

   

A2      字段编号       默认

   

B1      名称           设置为从左向右扩展,其余默认

   

B2      属性           不扩展,其余默认

   

只需要设置名称字段为横向扩展,逻辑关系使用默认的,在展示数据时,就会对应选择出字段编号为A2,名称为B1的属性值,如下图所示:

   


   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb6.jpg

   

便达到了数据库表为纵表时转变为横表显示。

   

 

   

三. 润乾实现纵表转为横表显示:

   

润乾报表在该问题有两种解决方案:

   

一.      参考润乾官网--à知识库中---à数据库为纵表时转为横表展现的设计方法:

   

定义了两个数据集ds1,ds2,都取用数据库中的那个纵表:

   


   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb7.jpg

   

B2=ds1.dselect(字段编号) //相当于select    distinct ……,取所有不重复的字段编号值,或者用=ds1.group(字段编号)用字段编号分组

   

C1=ds1.dselect(名称)    //取所有不重复的名称

   

C2=ds2.select(属性,,ds2.字段编号==B2&&ds2.名称==C1)   //用横轴字段编号,纵轴名称作为筛选条件,把唯一的属性值取出来 。

   

结果预览如下:

   

   

http://www.finereport.com/forumimages/zjkbwzbszbwhb8.jpg


四. 总结:

   

由上可以看出,Java报表工具FineReport与润乾都可以使用简单的交叉报表来实现数据库表为纵表时转变为横表来显示:

   

l  操作都很简单,步骤也基本类似

   

l  润乾使用数据表字段时默认为列表型,而Java报表工具FineReport默认为分组,后者更贴近用户的需求,大部分用户制作的是复杂的自由报表,所以通常需要合并相同项


文章转自:http://blog.vsharing.com/fanfanzheng/A1449895.html

了解Java报表工具就从这里开始
posted on 2011-11-24 10:16 season 阅读(265) 评论(0)  编辑  收藏 所属分类: Java报表—技术知识

只有注册用户登录后才能发表评论。


网站导航: