精华内容
下载资源
问答
  • 葡萄城报表介绍:分组报表 ...传统的分组报表制作方式把报表划分为条带状,用户根据一个数据绑定向导指定分组,汇总字段,生成标准的分组报表。当然,我们也可以在Excel中,进行分组报表的制作;但是这样也只...

    什么是分组报表

    分组报表,是所有报表中最基本、最常见的报表类型,也是所有报表工具中都支持的报表格式。从一般概念上来讲,分组报表就是只有纵向的分组。传统的分组报表制作方式是把报表划分为条带状,用户根据一个数据绑定向导指定分组,汇总字段,生成标准的分组报表。当然,我们也可以在Excel中,进行分组报表的制作;但是这样也只是在小数据量的前提下可以实施,当数据量很大很复杂时,相信使用葡萄城报表制作分组报表,就是事半功倍了。

    而使用葡萄城报表,将会使制作分组报表的方式更简单、更智能化,无需编码即可快速设计报表。

     

    分组报表的类型

    分组报表常用的类型有:单级分组报表、嵌套分组报表等类型。同时还可以使用表格、列表以及矩阵等数据区域控件对数据源进行分组操作。分组报表在商业报表系统中应用不胜枚举,客户信息归类统计表、商品分类统计表、销售记录年度、阅读统计等等。

    如何创建分组报表

    1、创建报表文件

    在应用程序中添加一个葡萄城报表文件,使用的项目模板类型为页面报表。添加完成之后从 VS 报表菜单中选择报表属性菜单项,并在外观选项卡中设置报表页边距为 1cm。

    报表打印

    2、打开报表资源管理器,并按照以下信息创建报表数据源

    名称:

    NWind_CHS

    类型:

    Micorsoft OleDb Provider

    OLE DB 提供程序:

    Microsoft.Jet.OLEDB.4.0

    服务器或文件名称:

    Data\NWind_CHS.mdb

    报表打印

    3、 添加数据集

    在新建的 NWind_CHS 数据源上鼠标右键并选择添加数据集菜单项,数据集信息如下:

    常规-名称:Products

    查询-查询:

    SELECT 产品.*,类别.类别名称,类别.说明 AS 类别说明,类别.图片 AS 类别图片, 供应商.公司名称 AS 供应商,供应商.联系人姓名,供应商.城市,供应商.地址 FROM (供应商 INNER JOIN 产品 ON 供应商.供应商ID = 产品.供应商ID) INNER JOIN 类别 ON 产品.类别ID = 类别.类别ID ORDER BY 产品.类别ID;

    通过简单的上述操作,即可得到下面的分组报表

    报表打印

    从上图可以看出,分组报表从结构和样式上都与Excel很相似,但Excel并不是专业的报表软件,葡萄城报表的出现则正好填补了类Excel报表的空缺。

    转载请注明出自:葡萄城报表

     

    关于葡萄城报表

    葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码、灵活、稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计、管理、权限控制、数据填报、负载均衡及跨平台发布。

     

    千万种报表,同一种选择!获知葡萄城报表更多详情,请访问如下网站:
    了解报表开发控件:http://www.gcpowertools.com.cn/products/activereports_overview.htm
    了解报表服务器:http://www.grapecity.com.cn/enterprise-solutions/activereports_server/

    posted on 2017-07-13 11:46 春笋拔节 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/chunsunbajie/p/groupreport.html

    展开全文
  • 最近接触了报表业务,里面有...什么是分组?假设有一张表articles, 有 id(主键)、author_id(作者)、type_id(类型)、created_at等字段。select author_id, count(id) from articles group by author_id;上面就是...

    最近接触了报表业务,里面有各种分组、求和操作。整理大脑中对分组的知识碎片,并查阅相关资料,在这里对group 做一个知识的梳理。

    什么是分组?

    假设有一张表articles, 有 id(主键)、author_id(作者)、type_id(类型)、created_at等字段。

    select author_id, count(id) from articles group by author_id;

    上面就是一个简单的分组操作,它会输出所有的author_id(不会重复)以及每个author_id拥有的文章数量。类似下面:

    author_id  count

    13455        10

    13456        5

    可以看出分组是一个聚合操作,按照group by 后面的字段进行聚合,然后可以对聚合后的集合进行分别操作,类似上面的求和。 执行的内容大概是: 先按照author_id 来进行聚合,表中有多少个唯一的author_id就分为多少个组, 不同的列如果author_id相同就归为同一组,不然则为另一组。然后可以对这些组执行一些操作:

    select author_id, max(created_at) from articles group by author_id;

    求出每个组(每个author)中最大的的创建时间。这样可以查询每个author最近一次发表文章是什么时候。

    除了聚合之外,执行分组操作的字段在输出时值是唯一的,不会重复。所以分组大概可以达到三个结果:

    1. 按照某种方式聚合,并可以对聚合后的集合进行部分操作,如计算集合元素总数,计算最大值等
    2. 会对执行分组操作的字段进行唯一值提取,有去重的效果。类似distinct
    3. 分组的结果会按照被分组的字段进行排序(输出时可以另外指定排序方式)

    MySQL如何执行分组?

     主要有这几种方式:1. 临时表   2.索引

    先来看看临时表方式,在上面的例子中,MySQL会创建一个临时的中间表,然后遍历全表进行分组操作,每一个分组都会在临时表中先保存一条对应的记录,在处理剩下的记录时,会把对应的行信息更新到临时表相应的记录中,如count计数,这可能会产生大量的磁盘IO。 分组完成后默认会将临时表的数据按照分组字段进行filesort,保证按照分组字段有序输出。

    很显然,这种操作,在数据量较大的情况下,性能是非常低下的,除了全表扫描,还有临时表的大量磁盘IO,以及filesort。

    当然,使用索引是更好的方案。

    索引与分组

    在很多情况下,如果分组字段上有索引,是可以避免创建临时表的。现在假设在author_id上创建了索引,分组的情况会有以下改变:

    • 从全表扫描变为顺序扫描索引。
    • 不用创建临时表,不用filesort

    如果,获取的所有数据都可以从覆盖索引中获取的话,性能会有极大的提升,否则,会通过索引回表查询相应的数据,这样也会造成大量的随机IO,和临时表相比值少了临时表数据更新和filesort的消耗,性能还是不够乐观。大多数情况下,分组操作中同时有索引和临时表参与。

    在有良好的索引的情况下,不会创建临时表,也较好的性能体验,这里面也主要分为两种: 

    1. 松散索引扫描
    2. 紧凑索引扫描

    这里只讨论一下这两者的区别:

    根据官方文档,松散索引定义:

     This property enables use of lookup groups in an index without having to consider all keys in the index that satisfy all WHERE conditions. This access method considers only a fraction of the keys in an index, so it is called a loose index scan.

    紧凑索引扫描:

    A tight index scan may be either a full index scan or a range index scan, depending on the query conditions.

    主要的差别在于,前者只扫描了部分少量的索引就完成了分组操作,后者则进行了全索引扫描或范围扫描。或者说,前者中分组操作和范围预测是同时进行的,后者是先进行范围扫描后,再进行分组。这个究竟是个什么意思,在这里我们稍微讨论一下。

    紧凑扫描的例子:(有索引 idx(c1,c2,c3),下同)

    select c1,c2,c3 from t1 where c1 = ‘a’ group by c2,c3

    这里需要先对组合索引进行范围扫描,找到所有的以'a'开头的集合,也就是会扫描以'a'开头的所有索引中的每一个值,利用索引的有序性进行有序扫描,从而实现分组的操作。

    松散索引扫描的例子:

    select c1,c2  from t1 group by c1,c2;

    这里面,索引扫描的个数和分组的数量一样,也就是说,索引扫描次数 =  c1,c2组合唯一的数量, 当有多个c1,c2时,比如有这样的组合:  1,2,3   1,2,4  1,2,7  (值的顺序和索引顺序一致,c1,c2,c3) ,有多个c1,c2 的重复,松散模式只读取第一个,不会管后面的重复值,直接跳到去读取下一组不同的c1,c2的值。 也就是说整个过程只扫描了少量的索引,没有进行全索引或范围扫描。

    当然,可以看出,松散模式性能更好。 为了更加深入理解,我们假设一种情况,在松散模式下,c1和c2的组合值是唯一的,也就是没有像上面那样重复,那么,以我的理解,它整个过程也相当于扫描了整个索引(不管c3列)。当然如果是这样,也就不用分组了。

    distinct与分组

    MySQL中常用的distinct也能实现部分group by 操作,这两者之间其实是非常类似的。distinct的实现原理与分组几乎一致,也可以使用松散/紧凑索引进行扫描,在不能只依靠索引的时候,也会像分组那样建立临时表。

    差别在于,在用临时表的时候,distinct不用排序,也就是不会用filesort。

    展开全文
  • 从原理上讲,获利能力分析报表 就是将销售数据财务数据,做简单的分组统计。如果把它的配置看作是构造 一段 sql 语句, 那么我们来看 特征是什么,其实它就相当于 group by 后面跟的 字段,就是分组的...

    从原理上讲,获利能力分析报表 就是将销售数据财务数据,做简单的分组统计。如果把它的配置看作是构造 一段 sql 语句,

    那么我们来看 特征是什么,其实它就相当于 group by 后面跟的 字段,就是分组的字段,相对应的  特征值  就是用来求和等计算统计的值字段,

    特征派生就是 group by 后面的不是简单的字段,而是由基本字段组合的表达式.

    展开全文
  • 基于WEBJ2EE报表解决方案- -

    千次阅读 2009-12-03 11:21:00
    我想我们首先必须明确下来我们需要到底什么的报表系统,它具体都有哪些功能,面向开发者还是最终用户。在我们项目中,用户需要系统允许他们自己定制报表,我想大家基本上也都出于这个出发点才来找...

    我想我们首先必须明确下来我们需要的到底是个什么样的报表系统,它具体都有哪些功能,是面向开发者的还是最终用户的。在我们的项目中,用户需要系统允许他们自己定制报表,我想大家基本上也都是出于这个出发点才来找报表方案的吧?

    · 报表定制:通过图形界面实现允许多表关联查询、外连接、子查询、分组求和(或者要求用户自己录入SQL脚本)
    · 报表定制:字段名称自动显示为中文
    · 报表定制:自定义报表样式(字体字号等)
    · 通过单独的菜单打开某个定制的报表或者在一个页面中选择打开已定制的报表(在这里"打开"指报表的运行而不是定制)
    · 允许在打开报表时指定报表参数,比如年月等,这样定制的时候可能还要有所考虑
    · 打印预览
    · 打印到打印机、PDF、html、Excel等
    · 打印分页支持自动按纸张大小或者按指定detail的行数分页

    可能还有很多......

    我们比较了JFreeReport和JasperReport,他们的共同点是实现了核心的报表引擎,可以接受特定格式的数据形成可打印的报表,而且输出格式都很多样化。区别:
    · JasperReport有报表设计工具,还不止一种,而JFreeReport没有(谁知道请立即通知我,不胜感谢!)。但是已有的设计工具也只是可以定制样式而已,SQL和中文字段名的问题都得自己解决
    · JasperReport必须通过临时文件来交换报表格式参数,而JFreeReport只需在内存中传递对象即可
    但是无论用哪种方案,都必须自己开发报表定制管理和报表运行的模块,尤其是报表定制时参数的定义和报表运行时参数的录入,设计可能会比较复杂,因为要考虑类型、下拉框、复选框等多种情况。我不明白这些功能完全可以由报表框架提供,但却见不到一个做出来的,可能是我见的太少了吧!

    我想我们首先必须明确下来我们需要的到底是个什么样的报表系统,它具体都有哪些功能,是面向开发者的还是最终用户的。在我们的项目中,用户需要系统允许他们自己定制报表,我想大家基本上也都是出于这个出发点才来找报表方案的吧?

    · 报表定制:通过图形界面实现允许多表关联查询、外连接、子查询、分组求和(或者要求用户自己录入SQL脚本)
    · 报表定制:字段名称自动显示为中文
    · 报表定制:自定义报表样式(字体字号等)
    · 通过单独的菜单打开某个定制的报表或者在一个页面中选择打开已定制的报表(在这里"打开"指报表的运行而不是定制)
    · 允许在打开报表时指定报表参数,比如年月等,这样定制的时候可能还要有所考虑
    · 打印预览
    · 打印到打印机、PDF、html、Excel等
    · 打印分页支持自动按纸张大小或者按指定detail的行数分页

    可能还有很多......

    我们比较了JFreeReport和JasperReport,他们的共同点是实现了核心的报表引擎,可以接受特定格式的数据形成可打印的报表,而且输出格式都很多样化。区别:
    · JasperReport有报表设计工具,还不止一种,而JFreeReport没有(谁知道请立即通知我,不胜感谢!)。但是已有的设计工具也只是可以定制样式而已,SQL和中文字段名的问题都得自己解决
    · JasperReport必须通过临时文件来交换报表格式参数,而JFreeReport只需在内存中传递对象即可
    但是无论用哪种方案,都必须自己开发报表定制管理和报表运行的模块,尤其是报表定制时参数的定义和报表运行时参数的录入,设计可能会比较复杂,因为要考虑类型、下拉框、复选框等多种情况。我不明白这些功能完全可以由报表框架提供,但却见不到一个做出来的,可能是我见的太少了吧!

    展开全文
  • 自定义报表系统

    2006-02-23 09:05:59
    下一段时间我准备增加 标题区和汇总区(最好还能嵌入图片,这样报表就更加精美了),以便于实现更为复杂的分组功能。天生缺陷:没办法实现复杂的单元格的运算如 C1=A1+C2+C3+B1(就象 Excel和华表). 大家有什么问题或...
  • 润乾报表多维分析功能漫游...首先从分析控件本身功能入手——打开分析页面第一件事什么呢?对啦,当然要展示报表了~脱离敲打复杂查询语句,只需要动动鼠标就可以获取所需要数据。第一步就是要将所需要字.
  • AC Report一套功能强大中国式报表组件。AC Report最初作者为解决自 己公司Delphi下开发应用软件的报表打印问题而开发一个报表系统,最初 进入应用版本Ver1.4,Ver1.6对外公布第一个版本。 它将...
  • 1—3什么是报表—。————“ 1。4 CIystdKgpons设计3 1.5 C吁s91RepodB发展. 1—6本书实例————。—. 1—7本书练习……。。……. 使用报衷向导建立报表………. 学习目标—“ 2—1 报表向 2.2选定...
  • 8. 和应用程序完美结合,支持windows下所有开发工具和程序语言(例如Delphi、C++、VB、PB、.NET、易语言),最终用户在设计器里可直接选择打印字段,生成表达式,报表设计器用户容易学习理解。 9. 支持脚本和窗体...
  • 做项目的时候,需要做一个报表的功能,框架springboot,所以用到的MySQL的group by,分组统计的,然后在group_conct(),来合并某个字段。应为数据量大的问题,功能实现的,但是数据对不上。一开始认为自己写的...
  • 是不是还在为成千上万数据处理不完而苦恼? 是不是一想到要处理这些数据就头大? ...首先从分析控件本身功能入手——打开分析页面第一件事什么呢?对啦,当然要展示报表了~脱离敲打...
  • 如何快速实现数据多维分析效果

    千次阅读 2018-10-09 08:22:11
    是不是还在为成千上万数据处理不完而苦恼? 是不是一想到要处理这些数据就头大? ...首先从分析控件本身功能入手——打开分析页面第一件事什么呢?对啦,当然要展示报表了~脱离敲打...
  • 程序员SQL金典1-8

    2011-05-20 18:09:38
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典7-8

    2011-05-20 18:30:04
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典6-8

    2011-05-20 18:29:34
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典5-8

    2011-05-20 18:13:41
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典4-8

    2011-05-20 18:12:51
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典3-8

    2011-05-20 18:11:59
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 程序员SQL金典2-8

    2011-05-20 18:11:12
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • SQL必问知识点

    2019-11-07 16:39:44
    一、什么是SQL: SQL 用于访问和处理数据库标准计算机语言。 SQL,查询: select 表名.字段名 from 表名 where 查询条件 order bye :排序 做报表 写法:select 查询语句结束后 order bye 表名.字段名 ...
  • 程序员SQL金典.rar

    2009-03-29 02:23:23
     10.4.2 MS SQL Server中自动增长字段  10.4.3 Oracle中自动增长字段  10.4.4 DB2中自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...
  • 答:一、报表的排列与分组:对记录排序时,最多可以按4个字段进行排序,而分组时最多可以按10个字段进行分组。 二、宏的功能:1)、打开/关闭数据表,窗体、打印报表和执行查询。2)、实现数据库的输入/输出。3)...
  • 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 ...
  • 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 ...
  • 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 ...
  • 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 ...
  • FastReport中文开发指南

    2010-11-01 00:10:56
    FastReport高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

报表的分组字段是什么