如何获取图表对象

编辑
  • 文档创建者:ppxx
  • 浏览次数:5193次
  • 编辑次数:17次
  • 最近更新:快去学习别玩了 于 2019-08-08
  • 1. 获取图表块对象

    获取一个具体的图表的图表对象,先要找到其所在的图表块,可以通过 FR.Chart.WebUtils.getChart(chartID)来获取具体的图表块 chartWidget 

    chartId: 表示当前图表所在的图表块的唯一标识 ID

    获取图表块chartwidget类型 解释  
     FR.Chart.WebUtils.getChart("chartID")单元格chartID 为单元格所在的序号,如 D5
     FR.Chart.WebUtils.getChart("chartID")悬浮元素chartID 为悬浮元素的名称,选中悬浮元素,右击可查看、设置悬浮元素名称
     FR.Chart.WebUtils.getChart("chartID")决策报表决策报表内添加的图表控件,其对应的 chartID 为控件名称
     FR.Chart.WebUtils.getChart("chartId","reportName") 决策报表 决策报表内有多个报表块时,获取报表块中的图表

    chartID:字符串类型

    例如,打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Chart\GraphSwitching\按钮式图表切换.cpt获取图表块:

    FR.Chart.WebUtils.getChart("A1")

    2. 获取图表对象

    获取具体的图表块对象 chartWidget 后,便可以使用 chartWidget.getChartWithIndex(chartIndex)来获取具体图表对象,默认图表块里面只有一个图表,这时的 chartIndex 为 0;

    而当设置了图表切换,即一个图表块内有多个图表时,需要传入具体的chartIndex来获取具体的图表对象,chartIndex 从 0 开始计数,这就意味着如果想获取第 n 个图表,那么传入的chartIndex 应该为 n-1

    获取图表对象  
    FR.Chart.WebUtils.getChart(chartID).getChartWithIndex(chartIndex)

    chartIndex:数字类型


    获取第三个饼图对象:

    FR.Chart.WebUtils.getChart("A1").getChartWithIndex(2)

    3. 获取系列对象

    默认的 chart 对象有一个 series 属性,该对象存储的是图表内系列相关的数据信息,为一个对象数组,如果要取其中的某一个具体的系列对象,则需要指定对应的索引 seriesIndexseriesIndex 从 0 开始计数。


    获取系列对象  
    chart.series[seriesIndex]


    例如:现在获取到的 chart 对象为 PieChart,想获取里面的第 1 个系列对象,那么使用 PieChart.series[0] 即可得到

    可以在浏览器中打印:


    var PieChart=FR.Chart.WebUtils.getChart("A1").getChartWithIndex(2);
    console.log(PieChart.series[0]);

    4. 获取数据点对象

    每个 series 对象里面又有一个 points 的属性,也是一个对象数组,这个 points 数组里面存放的就是我们想要的 point 数据点对象。如果需要获取某个具体的数据点对象,则需要指明该数据点的索引 pointIndexpointIndex 从 0 开始计数。


    获取数据点对象  
    series.points[pointIndex]


    例如:chart.series[0].points,即可拿到第一个系列下的所有数据点的集合,那么如果想拿到图表下的所有数据点的集合呢,只需要一个简单的遍历操作便可以完成:


    var PieChart=FR.Chart.WebUtils.getChart("A1").getChartWithIndex(2);
    var points = [];
    PieChart.series.forEach(function (ser){
        points = points.concat(ser.points);
    })
    console.log(points);

    5. 数据点对象中的属性

    有的时候,我们需要的可能只是满足某一个特定条件的一类数据点的集合,那么这个时候,我们就可以通过 Array.filter 来指定过滤条件,从而筛选出想要的数据点集合,这里对数据点对象中的某些属性做一下介绍,编写过滤条件的时候需要使用:


    属性    含义
      point.name  数据点的名称
      point.seriesName  数据点对应的系列名称
      point.category  数据点对应的分类名
      point.value  数据点的值


    比如,我想筛选处数据值大于 0.1 的数据点的集合,则可以这么写:


    var PieChart=FR.Chart.WebUtils.getChart("A1").getChartWithIndex(2);
    var points = [];
    PieChart.series.forEach(function (ser){
        points = points.concat(ser.points);
    })
    points = points.filter(function (p){ return p.value > 0.1; })

    6. 图表接口

    附件列表


    主题: 图表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

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

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