反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

决策报表控件联动ECharts图表

  • 文档创建者:Alicehyy
  • 历史版本:3
  • 最近更新:Alicehyy 于 2024-03-01
  • 1. 概述

    1.1 版本

    报表服务器版本JAR 包版本插件版本
    10.0.192021-10-15V1.0.0

    1.2 问题描述

    在决策报表的 body 中,直接使用控件绑定参数是可以实现 自动查询 的。但是,对 ECharts 图表来说,并不支持直接使用 body 中的控件实现联动。那么要实现 body 中的控件联动 ECharts 图表应该怎么做呢?

    1.3 解决思路

    给 body 中的控件添加「编辑后」事件,使用 FR.Chart.WebUtils.changeParameter() 给图表参数赋值,ECharts 图表利用 FR.remoteEvaluate() 接收参数实现 ECharts 图表动态展示。实现效果如下图所示:

    6FC2B934-F8CD-4E42-B21E-3D4AE5128D51.GIF

    2. 示例

    2.1 准备模板

    在设计器中新建决策报表,新建两个数据集。

    ds1:SQL 查询语句为 SELECT * FROM 销量。获取销量表中全部数据。

    ds2:SQL 查询语句为SELECT * FROM 销量 WHERE 1=1  ${if(len(area) == 0,"","and 地区 = '" + area + "'")} ,实现参数 area 为空时获取全部数据,否则根据参数 area 获取对应数据。

    Snag_3a782b41.png

    2.2 设计模板

    2.2.1 拖入组件

    1)首先将 body 的布局方式修改为「绝对布局」,向 body 中拖入一个标签控件、下拉框控件、ECharts 图表。如下图所示:

    Snag_3a4db284.png

    2)设置标签控件的控件值为 area: 。设置下拉框控件名称为「area」,数据字典为「数据查询」,选择 ds1 数据集,实际值和显示值均为「地区」字段。

    如下图所示:

    Snag_3a54e7e9.png

    2.2.2 添加编辑后事件

    给下拉框控件添加一个编辑后事件,输入 JavaScript 代码如下:

    FR.Chart.WebUtils.changeParameter({
    chartID:'chart0',
    para:{ 
    area:this.getValue()
          }
    })

    步骤如下图所示:

    Snag_3a596227.png

    2.2.3 添加图表数据结构

    双击 ECharts 图表,在配置中添加一个二维数组结构,绑定设置了参数的 ds2 数据集中的「销售员」和「销量」字段。如下图所示:

    Snag_3a5eeaa8.png

    2.2.4 编辑代码

    点击「代码编辑器」,因为 ds2 数据集中定义的参数为 $area ,所以通过 FR.remoteEvaluate("$area") 接收参数。输入代码如下所示:

    try
    {var area = FR.remoteEvaluate('$area');}
    catch(err){}
    const TABLE_DATA = getData("data1");
    option = {
          title: {subtext: area},
      legend: {},
      tooltip: {},
      dataset: {
        source: TABLE_DATA,
      },
      xAxis: { type: "category" },
      yAxis: {},
      series: [{ type: "bar" }],
    };

    如下图所示:

    Snag_3a6628c8.png


    2.3 效果预览

    保存报表,点击「PC端预览」,效果如 1.3 节实现效果所示。

    注:不支持移动端。

    3. 模板下载

    附件列表


    主题: 图表应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526