动态切换 web 报表中的统计图类型

需求:

报表以图形方式,也就是我们常说的“图表”形式展示时,不同的用户对图形类型有不同的要求,希望能够动态切换统计图类型,例如实现柱形图、条形图、折线图等图形间的动态切换。

思路:

常见的做法是在报表中多个单元格中生成不同的统计图,然后通过参数动态隐藏行来实现图形类型切换,但此种方法需要制作大量的图形图表,工作量较大,而且大量隐藏单元格会耗用内存,在性能上也有一定影响。

当然,肯定还会有别的方式……我们在制作统计图时会发现,绝大多数统计图设置方式基本类似,只需要设置分类轴、系列即可生成统计图。而生成的统计图是通过单元格表达式中的 graph() 函数实现的,参考该函数的帮助文档发现,该函数可以传入一个整型参数来控制统计图类型,这样我们就可以通过该参数实现统计图类型间的动态切换。下面,我们具体介绍下该种方式的实现。

一:制作统计表

以订单表为例,按货主地区统计订单数量,报表设计界面如下:

二:增加统计图

A3、B3 单元格合并,并更改该行高度,在 A3 中设置统计图:

统计图类型可任选,分类轴以及系列中设置相应表达式 ,点击确定即可。这样该单元格就生成了一个柱形图。

三:动态更改类型

报表中增加一个整数型参数:type,用于控制统计图类型,默认值设成 7 表示默认图形类型是柱形图:

将 A3 单元格的值表达式更改成 graph(type)

这样预览报表给该参数传递不同的值该单元格就能展示不同的图形类型。

四:页面端控制

报表制作好后,可在页面端增加一个参数表单进行动态控制。如果用户只需要看图形,可将报表的前两行设置隐藏,然后将没用的行列删除,将报表保存为为 tu.rpx,并增加参数表单报表,设置如下:

C1 单元格变量名属性设置成:type,C1 可做为下拉框供用户选择,值如下:

将报表保存为 tu_arg.rpx,在浏览器端访问 tu.rpx,更改参数点击查询即可,如选择折线图:

选择柱形图:

附:各图形类型对照关系:

1:区域图

2:条形图

3:三维条形图

4:三维簇状条形图

5:堆积条形图

6:三维堆积条形图

7:柱形图

8:三维柱形图

9:三维簇状柱形图

10:堆积柱形图

11:三维堆积柱形图

12:折线图

13:饼型图

14:散列图

15:三维区域图

16:三维折线图

17:三维饼型图

18:时序状态图

19:时间走势图

20:双轴折线图

21:双轴柱线图

22:雷达图

23:甘特图

24:仪表盘

25:里程碑

原文地址:https://www.cnblogs.com/xiaohuihui-11/p/12041812.html

时间: 2024-10-08 01:02:43

动态切换 web 报表中的统计图类型的相关文章

【转】如何使用代码动态设置水晶报表中的文本,字段等对象呢?

http://www.cnblogs.com/star250/archive/2008/12/22/1359810.html 如何使用代码动态设置水晶报表中的文本,字段等对象呢? //VB 首先,你必须要声明一个OBJECT变量(eg. TextObject, FieldObject, ......),当然不是一般的对象,而是:    Dim xObject As CrystalDecisions.CrystalReports.Engine.FieldObject(字段)    Dim xObj

(转) CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

从SVN上down下来的程序,编译报了一大堆的错,发现是缺少引用,但是明明引用了,后来打开引用,发现system.web.mvc这个引用打着叹号,如图, 后来重新引用了本机的system.web.mvc,编译就不报错了,但是运行他接着报“CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)”错误,如图, 百度,有人说就是设置System.Web.Mvc这个dll的属性“复制本地”设置为true就OK.如图,右击打开system.w

无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型

错误 1 无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型,因为该程序集缺少“GuidAttribute”特性 c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll AutoInternetDownloadTool 打开引用->找到指定的XXX.dll->右击属性->嵌入互操作类型->false

来篇文章:ASP。NET程序中动态修改web.config中的设置项目 (后台CS代码)

朋友们可以自行测试,我这里都没有问题了,鳖了一上午的问题总算解决了 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; usi

命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

从SVN中检出新项目之后本地编译可以通过,但是运行一直报错,错误提示信息:命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?) 后来发现"System.Web.Mvc"这个dll文件的引用路径在本地,而我本地对应的路径下面没有这个dll,所以报错了,引用的具体路径为:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.Mvc\v4.0_4.0.0.1__31bf3856ad364e

编译器错误消息: CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

1:新建mvc 空程序 ------------------- 编译器错误消息: CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?) ------------------- 2:解决办法  ------------------- 复制程序集 System.Web.Mvc (D:\OneDrive\PrivateCode\MVCDemo\packages\Microsoft.AspNet.Mvc.5.0.0\lib\net45\S

命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?)

Website从framework 3.5升级到framework4.0编译的时候报错: 错误 10 命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?) c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\01.web\582f5aca\78ccecad\App_Web_s2pcmnfi.0.cs 521 在网上找的同一现象的解决办法:

解决命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

解决命名空间"System.Web.Mvc"中不存在类型或命名空间名称"Ajax"(是否缺少程序集引用?) 1.右击引用中的System.Web.MVC,点击"属性" 把"复制本地"改为TRUE 原文地址:https://www.cnblogs.com/tiancaige/p/9441868.html

web报表中电子印章/水印的轻松实现

报表数据系统中,有一个重要功能叫做电子签章,通俗的讲,就是不需要实际去盖章,而直接把印章打印到纸质文件上,省去手工盖章的费时费力环节,例如,银行系统中的银行流水打印,都需要盖章才能生效,如果按传统的做法,那就是先打印出来流水,再找工作人员每页盖上章,工作人员需要先核对数据,再每页盖章,工作量极大且常常无意义.所以,银行系统中基本都会用到这个电子签章的功能. 我们先来看看电子签章的效果: 1. 2. --. 以上都是使用电子签章实现的.现在,我们就用润乾报表来做一个小例子,看看怎样轻松实现这个功能