最近做大屏,需要用到自动播放数据点提示。PS:数据不变化时,也要求循环播放数据点提示。
首先,我开启了图形上自带的“自动数据提示功能”,但是这个功能是数据发生变化,才会显示数据提示,不太符合我的需求。
然后,搜索了帮助文档,找到了相关的资料:[新]自动播放数据点提示-http://help.finereport.com/doc-view-2087.html
这个是用一个按钮来控制是否启用自动播放的功能,但是大屏上显示按钮不太合适,所以需要在此方案的基础上稍作改变。(个人JS比较渣,非常感谢帆软客服1027和技术人员的耐心解答)
环境:FR8.0,表单
步骤:
(1)在表单上放一个按钮,然后按钮上添加一个点击事件,代码如下(与帮助文档上的写法一致,只是增加了一个延时,因为我的表单上有一个背景图片,加载会慢,不加延时,JS会报错)
- setTimeout(function(){
- var vanchart = FR.Chart.WebUtils.getChart('chart0').vanCharts.charts[0],
- openAutoTooltipCarouselDelay = 1000;
- openAutoTooltipCarousel();
- function openAutoTooltipCarousel(ele){
- var series = vanchart.series; // 获取chart下的所有系列
- // 获取系列第一个系列的所有数据点
- // 注意,每次只能显示一个数据点提示,如果需要显示多个数据点的提示内容,可以在plotOptions里面开启数据提示共享
- var points = series[0].points,
- pointsLen = points.length;
- // 默认的提示轮播从第一个点开始
- var pointIndex = 0;
- window.openAutoTooltipCarouselTimer = setInterval(function (){
- // 遍历series下面每个系列的点
- // 使用vanchart.showTooltip依次展示不同索引的数据点
- vanchart.showTooltip(points[pointIndex]);
- pointIndex < pointsLen - 1 ? pointIndex++ : pointIndex = 0;
- }, openAutoTooltipCarouselDelay)
- }
- },1000);
复制代码 (2)在form上,增加一个初始化事件,实现点击按钮的操作,代码如下:
- setTimeout(function(){
- var Widget = this.options.form.getWidgetByName("button0");
- },1000);
复制代码 然后点击预览,就可以了。可详见附件。
方法由在线技术支持的客服1027(不知道名字)提供,我先点个赞。
----------------------------------------------------------分割线--------------------------------------------------------------------
补充:
刚刚按照女神@cherishdqy说的方式试过了,把代码直接放在表单的form或body的初始化事件里就可以实现了,很方便,比上面说的方法简单。 编辑于 2017-11-22 10:13
编辑于 2017-11-22 10:13
|