JS实现自动播放数据点提示联动图表

编辑
  • 文档创建者:cherishdqy
  • 浏览次数:2098次
  • 编辑次数:3次
  • 最近更新:Kevin-s 于 2019-06-23
  • 1. 描述

    客户想实现地图自动播放数据点提示时可以联动其他图表显示对应区域的数据,如下图所示:



    2. 思路

    通过 sql() 函数获取地图数据的所有区域值并赋值给 window.area,通过 图表接口 获取地图的的所有数据点 allPoints,使用 setInterval() 函数循环 window.area,将当前 window.area[window.temp] 区域值传给图表实现图表的数据刷新,并判断 allPoints 数据点,当数据点的区域名称等于当前 window.area[window.temp] 区域值,则显示相应区域的数据点提示。

    获取地图 chart0 所有数据点:

    var vanchart = FR.Chart.WebUtils.getChart('chart0').vanCharts.charts[0];
    var series = vanchart.series,
    allPoints = [];
    // 获取chart下的所有系列和所有数据点
    for (var i = -1; ++i < series.length;) {
    allPoints = allPoints.concat(series[i].points);
    }
    图表chart1传递area参数值刷新数据js:
    FR.Chart.WebUtils.changeParameter(
    'chart1', {
    "area": window.area[window.temp]
    }
    );

    地图显示数据点提示 JS:

    vanchart.showTooltip(allPoints[j]);


    3. 操作步骤

    3.1 新建数据集

    新建决策报表,新建两个数据集:

    地图:SELECT * FROM 地图

    图表:SELECT * FROM 地图 where 1=1 ${if(len(area)=0,""," and pid='"+area+"'")}


    3.2 添加图表

    添加三个图表:地图、饼图、柱形图,如下图所示:

    地图属性数据设置如下:

    饼图属性数据设置如下:

    柱形图属性数据设置如下:



    3.3 添加初始化事件

    控件列表选择 body,添加初始化事件

    在初始化界面的参数界面,新建一个 area 参数,参数值使用公式:sql("FRDemo","SELECT distinct pid FROM 地图 where pid!=''",1)

    初始化事件 JS 代码如下:

    window.area = area;
    window.temp = 0;
    var len = window.area.length;
    var temp = 0;
    setTimeout(function() {
    var vanchart = FR.Chart.WebUtils.getChart('地图').vanCharts.charts[0];
    var series = vanchart.series, allPoints = [];
    /* 获取chart下的所有系列和所有数据点 */
    for (var i = -1; ++i < series.length;) {
    allPoints = allPoints.concat(series[i].points);
    }
    setInterval(function() {
    /*刷新饼图*/
    FR.Chart.WebUtils.changeParameter(
    '饼图', {
    "area": window.area[window.temp]
    }
    );
                    /*刷新柱形图*/
    FR.Chart.WebUtils.changeParameter(
    '柱形图', {
    "area": window.area[window.temp]
    }
    );
    for (var j = 0; j < allPoints.length; j++) {
    if (allPoints[j].name == window.area[window.temp]) {
    /* 使用vanchart.showTooltip展示数据点 */
    vanchart.showTooltip(allPoints[j]);
    }
    }
    if (window.temp == (window.area.length - 1)) {
    window.temp = 0;
    } else {
    window.temp = window.temp + 1;
    }
    }, 2000);/* 间隔两秒循环一次 */
    }, 1000);

    4. 预览效果

    不支持移动端。


    5. 已完成模板

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\29-js实现自动播放数据点提示联动图表.frm

    右击存储模板


    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]