最新历史版本 :数据点提示显示所有系列 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
11.0

1.2 应用场景

当图表一个分类含有多个系列,用户希望可以显示该分类下所有系列的提示信息时,若提示内容为「通用」,直接勾选 图表提示 显示策略下的「显示所有系列」即可实现。

但是如果想要修改提示的其他样式,例如下图中各系列的单位不一样,就需要使用自定义实现了。

如下图所示:

Snag_6c252d4.png

1.3 实现思路

图表「样式>提示」内容选择「自定义」,在代码中通过 IF 条件语句为系列设置不同的提示内容。代码中使用到 html 语句定义样式时,需选中「使用html解析文本内容」。

Snag_6d4b2cf.png

2. 示例编辑

2.1 准备数据

本例我们直接使用文档 图表自定义多个坐标轴 中的模板,直接打开设计器内置的模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\ColumnChart\多坐标轴自定义柱形图.cpt,或点击下载模板 多坐标轴自定义柱形图.cpt 后在设计器中打开文件。

如下图所示:

Snag_65097b7.png

2.2 通用提示显示所有系列

这里我们演示一下通用提示下勾选「显示所有系列」时的效果。

选中图表,点击右侧属性面板「单元格元素>样式>提示」。内容选择「通用」,文本勾选分类名、系列名、值。显示策略下勾选「显示所有系列」。如下图所示:

Snag_66719dd.png

保存报表,点击「分页预览」,效果如下图,此时是各系列是没有单位的。

Snag_6d8b0e7.png

注:若是单位统一,可以给文本设置格式。如下图所示:

Snag_6db9467.png

2.3 自定义提示

提示内容选择「自定义」,输入代码如下:

function(){
var points = this.points; //表示同一个分类的不同系列点    
var a =this.category;     
var b;     
for(var i = 0, len = points.length; i < len; i++) {          
if(points[i].series.visible){               
if(this.points[i].seriesName=="Rainfall")           
b = FR.contentFormat(this.points[i].value, '#0mm');            
else  if(this.points[i].seriesName=="Sea-LevelPressure")               
b = FR.contentFormat(this.points[i].value, '#0mb');    
else 
b = FR.contentFormat(this.points[i].value, '#0℃');    
a += '<br/>'+"<font color='"+points[i].color+"'>●</font>"+points[i].seriesName+':'+b;
}   
}     
return a; 
}

选中「使用html解析文本内容」,如下图所示:

Snag_6d4b2cf.png

2.4 效果预览

2.4.1 PC 端

保存模板,点击「分页预览」,效果如 1.2 节应用场景所示。

注:移动端无论是否勾选显示所有系列,均默认显示所有系列。

2.4.2 移动端

App 端和 HTML5 端均支持,效果如下图所示:

Snag_6ec2bd7.png

3. 模板下载编辑

已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\ColumnChart\图表自定义多系列提示.cpt

点击下载模板:图表自定义多系列提示.cpt