润乾报表分组求和_润乾报表实现组内排序报表及改进

报表开发中经常会遇到需要进行组内排序的报表,如按月份的分组汇总值排序显示,并显示每月销售额前十名的记录。使用报表工具一般通过隐藏行列辅助可以实现,下面通过实例说明润乾报表的实现过程,以及改进方案。

报表需求

根据销售管理系统数据统计客户所在地区的订单总额,地区并按订单总额降序排列,要求每个地区中显示销售额在前五名的销售人员及其订单数量和订单金额,其他人员归入“其他”项中。报表样式如下:

这里应该注意的是地区分组中如果销售人数少于5个则不显示“其他”项(如上图中的西北地区)。

润乾报表实现

润乾报表实现主要依靠条件隐藏行实现,根据分组成员数量是否显示“其他”项,报表模板及表达式如下:

在润乾报表中,使用ds.group()的多个参数,结合条件判断隐藏行,多种使用方法结合完成了报表开发,可见润乾报表的强大之处。

但是由于要按照分组后汇总的订单金额排序,所以在B3的分组表达式中应用ds1.sum(订单金额)表达式作为ds.group()的参数,对于原始数据量较大的情况下,该表达式效率较低;而且,由于只显示前5名销售,在C3(排名)和D3(其他)中设置了隐藏行表达式,对于分组较多的情况仍然会存在性能问题;另外需要在E3和F3中使用格集过滤表达式计算其他销售人员合计,计算时要带着单元格属性计算,效率仍然不高。

上述提到的问题在传统报表工具中皆是存在的,原因在于数据计算(报表数据源准备)与报表呈现混在一起导致,开发人员不得不再报表中编写较复杂的计算逻辑以完成报表开发,造成报表开发和运行效率都不高。如果能将两部分分开,势必能提升开发和运行效率。

润乾公司在润乾报表的基础上,推出了可以完全满足复杂报表开发的集算报表,其内置了用于完成报表数据计算(数据源准备)的集算器,从而将数据计算和报表呈现剥离开,进一步梳理了报表开发流程,使得报表开发变得更加清晰。

上述报表需求使用集算报表可以这样完成:

集算报表实现

编写集算脚本

使用集算脚本编辑工具完成计算脚本,并为报表输出计算后结果集:

A1:执行sql得到初步汇总订单数据

A2:按照地区分组后组内成员按订单金额排序

A3-C7:循环A3,取前五名记录,并将超过第五的记录都归入“其他”项,结果写回A3

A8:结果按地区总额降序排列后返回给报表

报表调用

使用集算报表设计器,新建报表,使用“集算器”数据集类型,选择上面编辑好的集算脚本(sort.dfx)

报表模板及表达式

报表模板中根据集算脚本返回的结果集,分别取得地区分组和销售列表等数据,无需复杂表达式即完成报表开发。

由于集算器对集合运算(尤其是有序集合)的有效支持,使得取前5条记录非常容易,直接通过序号取得相应成员。而且,在集算器中完成复杂计算时可以分步完成,通过分步的方式降低实现的复杂度,这点也是要优于一般报表工具的。

此外,由于集算报表将数据计算(计算层)和呈现(展现层)分离,集算脚本在计算时由于不带有任何报表展现属性(与一般报表工具很大的差别),所以计算效率更高,将计算后结果交给报表模板进行展现,此时呈现端再无计算压力,从而提升报表运行效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Grid++Report是一款C/S与B/S集成报表工具,功能全面易学易用。C/S开发适用于VB.NET,C#,VB,VC,Delphi,BCB,VFP,易语言等。B/S开发适用于ASP.NET,ASP,PHP,JSP等,支持所有WEB服务器。 Grid++Report6.0版主要新增功能 ★引擎方面 1、增了一个自由表格部件,可以灵活定义各种自由表格,具有单元格合并功能。 2、部件框增边距设置,边框增内层与阴影,虚线边框。 3、文字显示增段间距、首字缩进与两端分散对齐。 4、分组报表可以按某个统计值的大小对分组项进行排序 5、数据源除了OLE DB外,增XML、JSON与普通文本数据。 6、在编程接口中增了很多应用函数,如数据压缩、数字格式化、日期时间解析与格式化、打印机与纸型枚举、文件选择对话框等。 7、其它杂项功能,根据多年收集的用户需求来增改进功能,如分组相关系统变量、图像旋转显示等。 ★设计器: 1、设计面板具有缩放设计功能。 2、将关联属性归类为组,方便在设计时集中设置与查看。 3、对象浏览窗口与属性窗口可以隐藏,方便在设计很宽的报表时增大设计面板的区域。 4、设计面板大小跟随明细网格总列宽来改变宽度,方便设计大宽度明细网格报表。 5、部件框锁定功能,被锁定的部件框不允许进行可视化拖放。 6、自动在分组头尾中增统计框,默认为合计函数,并设置相应的对齐列。 7、数据源连接串可以为 XML 或 JSON 数据源,且可以自动生成字段。设计报表时数据源可连接的类型有:各种数据库、XML或JSON文件、产生XML或JSON的网络URL、EXCEL文件、TEXT文件。 8、设计器增数据提供事件接口,在设计报表时可以用给报表载自定义数据源。 ★打印与打印预览: 1、横向分页时,在数据不多的情况下,分页直接显示在本页,而不是在下一页。 2、在模板中可以保存默认打印机名称。 3、分组尾支持每页重复打印。 4、如果部件框跨页多次显示了,在新页中再次输出其上下边框。 5、提供编程接口枚举出Windows系统中安装的打印机,以及指定打印机支持的所有纸张类型。 ★查询显示: 1、没有明细网格的报表,背景图可以显示出来。 2、明细数据不多时,表格不会显示下部空白。 ★数据导出: 1、在导出Excel时,能用代码设置页边距等参数 2、在运行时对外观属性的改变可以反映到Excel导出。 ★图表: 1、重新设计图表接口,让图表可视化设计与编程控制更清晰简单。 2、支持更多图表类型,如百分比柱状图、垂直排列的柱图。 3、一个图表中可以混和显示多种不同类型的图形,如一个序列为柱图,另一个序列为曲线图。 4、Y轴可以显示双坐标轴,方便实现双轴柱状图等。 5、图例可以在下方显示,可以多栏显示。 6、增图表数据记录集,图表数据直接从记录集或XML数据源载,而不需用代码来载图表数据。 7、图表方面还有很多细节方面的改进与增强,强图表功能是本新版本的重要方面。 ★交叉表 1、多数据列交叉表可以将同一列产生的交叉列排列在一起。 2、在合计列中可以排除掉一些列不进行合计。 3、纵向交叉项目列中可以定义统计框或综合文字框表达式,在合计列中关联的字段自动求和,在项目列中关联字段为复制首笔值。 ★子报表: 1、子报表无数据可以自动隐藏。
咖啡智能报表控件 2.0[下载地址] 咖啡智能报表组件是一个类似Excel风格的报表组件 1、操作风格与EXCEL类似,是一款表格型报表组件,功能强大、操作简单 2、灵活多样性的单元格属性 合并、拆分、对齐方式、背景、前景、边框、前缀、后缀、格式化、套打标志、数字大写显示、多种数据类型、 数据长度设定、多种单元格类型、超级链接、EMAIL链接、特殊字符前缀、回车换行、自动换行、锁定、焦点、 绑定变量名称、绑定数据字段名称、显示图片、内容隐藏、项目格式等 3、强大公式计算功能 4、图片显示功能,图片可以随网格大小而变动,也可以固定大小 5、画线功能,线可以随单元格大小变动而变动,也可以固定大小 6、图标功能,多种类型图标(平面、3D的方形图、柱形图、饼图、线形图、雷达图、堆栈图), 可以水平显示或垂直显示;饼图可以把柄切开提取显示 7、画笔功能;报表提供了画笔功能,可以批示报表,重点圈画报表。 8、多表单,一个报表可以有多个表单,理论上没有多少限制,表单TAB标签可以显示或隐藏,也可以显示或隐藏其中一个。 9、灵活的键盘、鼠标操作功能;可以设置多样化的回车键操作,例如回车在单元格内数据换行、移到左单元格、移到下单元格等。 10、灵活的数据输出功能,可以输出多种格式的TXT文件、HTML文件。在输出HTML文件时连同图片一起输出。 11、数据搜索功能,按列或行搜索指定的数据 12、表单:背景颜色、背景图片、网格颜色、隐藏网格、奇偶行颜色、当前行颜色、设置列标题、格式刷, 根据变量设置单元格内容、根据单元格字段设置内容等。 13、灵活的打印功能;设置行打印分割线、列打印分割线、页眉、页脚、背景图片文字、 套打、浅色打印、水平居中、垂直居中等;页眉、页脚分左、中、右三部分,可以设置图片等各种属性 14、强大的一维条码(CODE11、CODE39、CODE93、CODE128A、CODE128B、CODE128C、CODE128、CODABAR、 EAN8、EAN13、INTERLEAVED25、JAN、MSI、STANDARD25、UPCA、UPCE)、二维条码(QR码、PDF417码)功能 15、各种报表事件,500多个报表接口 16、智能: 组件的智能性体现在除了大量功能函数外,数据绑定包含各种数据库的绑定(oracle、DB2、MS SQL、ACCESS等)、 文本文件数据绑定,数据源没有个数限制,可以添多个数据源进行数据显示,咖啡智能报表不是简单的进行数据填充显示, 具有强大的数据处理能力,例如:数据格式自动处理,根据数据自动分组统计,复杂交叉报表处理提供了数据自动分组归类、 列分组统计、列总计、行分组统计、行总计等功能,根据定义的函数(求和、最大值、最小值、平均值、个数、排序值) 计算出相应的数值,在数据处理中根据数据所属数据范围自动求和运算等,用户只简单的提供数据就可以得出复杂强大的报表, 除了智能的处理外也提高了系统处理性能。 17、强大WEB功能 通过接口可以下载WEB服务上的报表、下载绑定数据(实现WEB绑定功能)、下载XML数据;XML数据中可以包含多种格式的数据 (下载报表地址、表格数据、报表绑定数据、单元格变量数据、单元格字段数据、操作报表方法等),在XML中的方法可以实现 对本地报表的操作。 报表本身的数据通过HTTP协议上传到服务器上,数据可以是单元格数据、变量数据、字段数据;在服务器端获得获得上传数据的方式与IE浏览器提交数据获得方式相同。 18、国际性 简单设置属性就可实现本地化, 例如缺省中文的打印标题都可以设置成自己的本地语言。 19、环境 咖啡报表组件可以用于VB、VC、DELPHI、PB、.NET等FOR WINDOWS语言的二次开发报表组件。 也可以嵌入到jsp、asp中实现WEB方式的开发,报表CAB包只有800K多一点 请发邮件到:happymfc@sina.com 索取注册码 服务方式: QQ号:coffeeReport@yahoo.cn MSN :coffeeReport@hotmail.com 邮箱:coffeeReport@yahoo.cn

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值