文档章节

数据库表为纵表时转变为横表的设计方法

f
 finereport
发布于 2011/11/24 10:54
字数 676
阅读 718
收藏 0

一. 横表&纵表:

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

横表:

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

纵表:

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

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

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

预览如下:

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

二.报表制作工具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(字段编号) //相当于selectdistinct ……,取所有不重复的”字段编号”值,或者用=ds1.group(字段编号)用字段编号分组

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

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

结果预览如下:

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

 

四. 总结:

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

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

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

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

本文转载自:

f
粉丝 1
博文 19
码字总数 3393
作品 0
南京
私信 提问
mysql横表和纵表以及互转实例

一.纵表 相关建表语句: CREATE TABLE ( int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', varchar(50) DEFAULT NULL COMMENT '姓名', varchar(50) DEFAULT NULL COMMENT '科目', double......

谢思华
2016/04/06
2.4K
0
Oracle 横表/纵表用场以及它们之间的相互转换

一、横表和纵表 横表:通常指我们平时在数据库中建立的表,是一种普通的建表方式。 (主键、字段1、字段2......)如:时间、客户ID,基本通话费、漫游通话费,国内长途费、国际长途费....。 ...

指尖的舞者
2012/08/05
224
0
数据库设计如何实现属性可配置化

http://www.iteye.com/problems/59252 比如有个Book表,有id, name, isbn等列表示基本信息,但是不同的商家对Book表有不同的其他需求,有的还需要A属性,有的则还需要B属性,或者说某一天随着...

长生门主
2017/06/16
0
0
架构设计原则、开发工具

架构设计原则、开发总结.潘洪亮.pptx SpringCloud微服务分布式 311106863 1. 积分系统介绍: 对用户进行激励就是为了让用户更多的使用其产品或者服务,这样才能实现产品的价值。 而积分体系就...

北京起航
2015/09/25
229
0
基于ESB实现商友与K3财务凭证集成

背景 沈阳XX商场推行O2O营销模式,信息化系统包括:线下零售系统、线上电商系统、网上支付系统,财务核算系统,为了实现线上线下系统互动、财务核算一体化,需要对各系统进行数据集成、系统对...

数通畅联
2014/12/10
254
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
今天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
今天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
今天
64
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
今天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
今天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部