php折线图设置预警线,使用ActiveReports报表实现图表预警色和预警线功能

图表是应用最为广泛的数据可视化方式,可将数据之间的大小、分布和趋势等关系,呈现的非常清晰。在最新版本中我们对图表功能行了再次增强,为图表提供了警戒线和警戒色功能,让数据之间的临界点清晰可见,同时,让异常数据一目了然。

先让我们来看看添加预警功能的图表效果图:

image.ashx?picture=%E5%9B%BE%E6%A0%87%E9%A2%84%E8%AD%A6_thumb_2.png

那么接下来我们就一步一步的实现这一功能:

第一步:创建RDL报表和数据源

在报表设计器或者Visual Studio中创建一个新的报表模板,模板类型选择RDL报表,以下是在设计器中创建的截图

3ca16f57a90f45596bf7bc28d99c8f36.png

设置报表纸张大小为宽30cm,高18cm;页面距全部为0cm;

c83a1cfa36b3996445bcf27d38e3c548.png

在报表资源管理器窗口中,添加数据源 DataSource1,我这儿使用的是SQL Server数据库(您也可以连接到你的Oracle等数据源)

9efab763b0a3c9b1ba0fe41981ca110e.png

在数据源DataSource1中上面添加数据集DataSet1,使用的 SQL 语句如下:

SELECT top 30 产品.产品名称,订单.货主地区,SUM(订单明细.数量) AS 销售量 FROM (( 订单

INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID)

INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID)

WHERE DATEDIFF("yyyy",订单.订购日期,'2011-01-01') = 0

GROUP BY 产品.产品名称,订单.货主地区

ORDER BY SUM(订单明细.数量) desc

添加数据集 DataSet1 对话框如下:

ce9d31bcba66d349999c4135b5c9cc2b.png

数据集 DataSet1 对应的查询结果如下:

8d6fcbbf36cceb9b682aeda7502c734d.png

第二步:在报表中添加图表

从工具箱中双击图表将其添加到报表设计界面上,图表类型选择柱形图,设置图表大小(Size)属性为27.8cm, 16.6cm,如下图:

1d045194a299d525a2967985443e73fd.png

从数据集 DataSet1 中将【产品名称】字段拖拽到图表下方【将类别字段拖动到这里】区域,如下图红色线所标记的操作;将【销售量】字段拖拽到图表上方的【将数据字段拖动到这里】区域,如下图蓝色线所标记操作。

76c2fa24da6ab793d8553cac5cb56755.png

完成以上操作之后,点击设计器下方【预览】选项卡,可以查看生成的图表效果,如下图:

7c4f91affe52fc54dfa5f3c1d8f3babd.png

到目前为止,我们完成图表创建的基本操作,接下来就是图表预警色功能。

第三步:设置图表预警色功能

我们将图表中的销售量数据分为以下五个区域,然后每个区域对应的颜色如下表: 销售量 颜色

0-199 58229df5e4b07ef5839ab26c35e33b3d.png

200-299 0dfcbec21b5122968aa1670bd23174d2.png

300-399 fc2041f02817643379ad0a27bc794abf.png

400-499 792d836b7025e378bc16475ce9789ad9.png

500以上 6a5888d5d6b16ee47a0304343a2e84d6.png

在报表【脚本】视图中添加以下代码,用来返回不同范围内销售量对应的颜色:

Function SetColor(ByVal value As Double) As String

If(value < 200) Then

Return "Red"

ElseIf(value < 300) Then

Return "#F37A5A"

ElseIf(value < 400) Then

Return "#FFE022"

ElseIf(value < 500) Then

Return "#B5E610"

Else

Return "#00B338"

End If

End Function

04be9d1a7fdff25b26dd6b08e60d2da5.png

在报表设计器右下角的命令区域内,点击【图表数据】打开图表属性设置对话框,并切换到【系列值】选项卡,在该页面中选择【销售量】,并从下方的【样式】中设置【填充色】属性的值为 =Code.SetColor(Sum([销售量]),这样柱状图的每个柱子颜色会根据销售量动态变化。点击【确定】按钮完成预警色设置操作。

1e9281f70f5c264d9df1c7d53c72a138.png

在返回设计界面之后点击设计区域【预览】查看报表效果,如下图:

cfde2d16aba13ac814803c855474d1e0.png

截止这一步,我们已经实现图表的预警色功能,不过从易读性的角度看,上面这个图表数据有些杂乱,如果能够对数据做一个排序,这样就更能快速分清不同数据所在的区间和大小关系。

带着这样一种改进的想法,我们对数据做一次排序操作。继续点击设计工具右下角区域的【图表数据】打开图表属性设置对话框,切换到【类别分组】页面,并在【排序】中添加一个排序规则,表达式设置为 =Sum([销售量]) ,方向设置为【升序】,如下图:

0ba5b889bc3b588ab3c38612c39fd20e.png

完成以上操作之后,点击【确定】按钮回到报表设计界面,并点击报表设计区域下方的【预览】查看效果,如下图:

b13311ecab18238c3491d3a4cf9ed18f.png

第四步:为图表添加预警线功能

点击设计工具右下角区域的【图表Y-轴坐标】打开图表Y-轴属性设置对话框,切换到【其他】页面,并设置预警线区域的以下属性:

值:200

样式:Dashed

宽度:2pt

颜色:Red

图例标签:销售目标预警线

8bb109e43483187eeeb75f83dff0a40f.png

完成以上操作之后,点击【确定】按钮回到报表设计界面,并点击报表设计区域下方的【预览】查看效果,如下图:

626f5d56a23ad2f0dfc758069eadbddc.png

通过以上操作,我们完成了图表的预警色和预警线的全部操作,现在你就可以

实现以上功能,而该博客中创建的报表模板可以直接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值