[老]单系列(分类)图表排序

编辑
文档创建者:文档助手1 (67727 )     浏览次数:5661次     编辑次数:9次     最近更新:zsh331 于 2017-04-20     

目录:

1. 问题描述编辑

在使用图表时,图表能够根据数据的大小进行显示,以柱形图为例,希望所有柱子能够根据数据的大小从高到低或者从低到高进行排序,如下图所示,此时要如何实现呢?
222

2. 实现思路编辑

图表的默认是根据系列进行排序显示的。
若图表数据源是来自单个数据集,那么可以直接使用数据集中的排序进行排序,然后设置图表数据源为数据集数据;若图表数据源是通过单元格计算出来的,则可以使用扩展后排序进行排序,然后设置图表数据源为单元格数据即可。

3. 示例(一)编辑

图表根据【系列值】从大到小进行排序。我们以一个简单的示例分别介绍下如何实现上图效果。
3.1 图表数据源为数据集数据
1)打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Logchart.cpt
2)修改数据集
将原来的数据集修改为按照成本价进行降序排序,则SQL语句为:SELECT * FROM 产品 where 类别ID= 1 order by 成本价 desc
3)效果查看
点击分页预览,可以看到柱子从高到低进行降序排序了,如上效果图。
3.2 图表数据源为单元格数据
1)打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Logchart.cpt
2)修改模板
按照下图将对应的数据列拖入到单元格中
3)排序设置
右击A2单元格,选择扩展属性,在单元格属性面板中设置扩展后排序为降序,并在公式中输入B2
222
4)数据集设置
按照下图设置数据集:
222
5)隐藏单元格
将单元格中的数据隐藏起来,选中第一行和第二行,右击,选择隐藏行即可。
6)效果查看
点击分页预览,可以看到柱子从高到低进行降序排序了,如上效果图。
注:条形图和饼图同样设置。
3.3 模板保存

数据集数据源的图表排序模板保存在%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Logchart_3.cpt

4. 示例(二)编辑

图表根据【分类名】指定顺序进行排序。我们以一个简单的示例来介绍如何实现效果。

有时候会遇到另外一种情况,用户需要根据【分类名】指定顺序排序。比如:需要按照“牛奶,啤酒,绿茶,运动饮料,矿泉水,汽水,苹果汁,柠檬汁,蜜桃汁,浓缩饮料,苏打水,柳橙汁”排序,由于系列名是字符串且毫无规律可寻,如果按照【示例一】的方法(order by  产品名称)是无法实现了。

例:直接使用“order by 产品名称”。

SELECT * FROM 产品 where 类别ID= 1  order by 产品名称
图表结果:(分类名实际是按照汉字拼音的首字母排序的,并不是我们需要的结果。)

222

要达到我们期望的结果,如何解决呢?下面我们来实现…


方法:可以使用 order by charindex() ,先在结果集将【产品名称】按需排序。

SELECT * FROM 产品 where 类别ID= 1  order by charindex(产品名称,'牛奶,啤酒,绿茶,运动饮料,矿泉水,汽水,苹果汁,柠檬汁,蜜桃汁,浓缩咖啡,苏打水,柳橙汁') 

SQL结果集:

222
图表效果:

222

注:Sql中的CHARINDEX方法可以实现对字段按照指定的顺序排序,灵活的利用CHARINDEX方法把查询的结果按照我们想要的顺序显示。

附件列表


主题: 图表应用
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?