多数据源报表解析之简单多源报表

多数据源报表即一张报表中可以定义多个数据集,分别取出需要的数据库表,所取的数据库表甚至可以来自于不同的数据库。本文通过几个例子说明多个数据集数据如何相互关联来实现多源报表。

1. 描述

多数据源,就是在同一张报表当中,显示的数据来自于多个不同的表或不同的库。

如下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧***部分来自销售总额表,即数据来自于两张不同的数据库表:

2. 示例

2.1 打开单个数据源报表

打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cross.cpt

2.2 新增数据源

再新增一个数据集ds2,其SQL语句为SELECT * FROM [销售总额]。ds2数据集与ds1数据集都有一个销售员字段。

2.3 绑定数据列

如下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展:

2.4 设置过滤

此时设计器预览,效果如下:

可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。

虽然销售总额的父格为销售员数据列,由于他们来自于不同的数据集,因此销售总额不会将父格销售员作为条件进行筛选,即不存在附属关系。

我们需要销售总额与销售员一一对应,就需要设置过滤条件,将这两个数据集的数据通过销售员关联起来。

选中销售总额所在单元格,设置过滤,添加过滤条件:销售员 等于 ‘C4‘,取出与C4单元格中销售员匹配的数据,如下图:

2.5 保存并预览

保存模板,预览报表,即可看到如上的效果。

3. 多数据源报表优势

多数据源报表传统的做法,是通过拼SQL将多源整合为单源。如上例中将销量表与销售总额表整合起来:SELECT * FROM 销量,销售总额 WHERE 销量.销售员 = 销售总额.销售员 。若数据库表比较复杂,且使用的表个数不止2张而是更多时,可以想象,最终的SQL查询语句将会非常复杂。

FineReport天然支持多数据源的报表,一张报表中可以添加任意多个数据集,每个数据集使用最简单的SQL语句查询出需要的表数据,在报表中只需要使用过滤就可以将来自不同表的数据相互关联起来。使得多数据源报表制作更加简单。

时间: 2024-11-29 06:24:35

多数据源报表解析之简单多源报表的相关文章

Report Machine(RM)报表控件简单用法-delphi

RM(Report Machine)是一个功能强大的Delphi报表控件包.使用它可以制作出非常复杂的报表.下面讲述最简单的用法: 在Form上放上两个数据库控件:ADOConnection和ADOQuery设置好ADOConnection的ConnectionString.LoginPrompt=False.ADOQuery的Connection指向ADOConnection.ADOQuery的SQL设置好数据查询语句. 在Form上放上两个RM报表控件:RMDBDataSet和RMRepor

DirectShow基础编程 最简单的源Filter的编写步骤 (转)

转自: http://blog.csdn.net/bwmwm/article/details/5463852 1.创建一个空的Dll工程,添加5个空文件分别名为:MyOutputPin.h.MySourceFilter.h.MyOutputPin.cpp.MySourceFilter.cpp和MySourceFilter.def. 2.声明两个类,一个是Filter的实现类,一个是输出Pin的实现类,由于是最简单的源Filter,因此Filter只有一个输出Pin.实现的功能是从本地磁盘读取三个

菜鸟学SSH(十三)——Spring容器解析及简单实现

最近一段时间,"容器"两个字一直萦绕在我的耳边,甚至是吃饭.睡觉的时候都在我脑子里蹦来蹦去的.随着这些天一次次的交流.讨论,对于容器的理解也逐渐加深.理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧. 简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法. 原理简单介绍: Spring容器的原理,其实就是通过解析xml文件,或取到用户配置的

c 语言简单计算器源码

//  main.c //  计算器 //  Created by qianfeng on 14-7-15. //  Copyright (c) 2014年 ___FGY___. All rights reserved. //iPhone自带计算器不够好,由于你技术出众,你被安排去开发一款iOS新式计算器. /*项目经理认为计算器第一版要支持表达式求值,所以要求如下: 输入任意表达式 求出他的值(支持负数,不支持小数) 这里支持6种表达式 () * / + - ()优先级最高, * /优先级其次

简单yum源搭建

一.介绍 yum基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. 二.准备 1.修改虚拟机,添加硬件光驱,并映射系统镜像,需要重启,才可以设别添加的新硬件 2.查看光驱 三.搭建 1.创建挂载点 mkdir /目录名//这里可以使用默认的目录 /mnt/ 2.编辑yum配置文件 [[email protected] ~]# cd /etc/yum.repos.d/ [email protected] 

Silverlight程序之:简单的Excel报表导出方法

Silverlight程序之:简单的Excel报表导出方法 概述 介绍一种简单的Excel报表导出方法. 页面效果 导出效果: 首先我们创建一个Excel表格,将我们的基本信息格式都设置好,如下图所示: 将创建好的Excel表格另存为网页. 打开VS将创建好的报表模版网页文件拖到Web项目新建的Report文件夹 修改其后缀名为aspx 打开文件 添加头部代码 <%@ Page Language="C#" ContentType="application/vnd.ms-

【转】android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便

android json解析及简单例子(转载)

android json解析及简单例子 JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JS

ActiveReports 报表应用教程 (2)---清单类报表

原文:ActiveReports 报表应用教程 (2)---清单类报表 在大多报表系统中都有清单类报表的身影,比如:客户清单.商品信息清单.设备清单.物品采购清单.记账凭证.货品发货清单.员工清单等等.清单类报表看视乎比较简单,但是,由清单类报表演变而来的报表类型却十分丰富,在清单类报表中可以加入数据统计.数据分栏.数据分组,以及交互式报表和数据可视化功能. 本文将展示两种布局的清单类报表,表格式清单报表和自由布局清单报表.   1.表格式清单报表--客户信息清单 在客户信息清单报表中以表格形式