需求实时数据监控刷新,数据变动则改变对应报表块的背景2-3秒钟,可以实现吗

已经通过决策报表刷新插件做到image.png实时刷新(每一秒刷新一次报表块)

现在需要:刷新后如果数据库内数值变动,则改变报表块背景为另一个图片2-3秒钟

或者:我将两个图片的图片控件叠放,数据变动则令居于上面的一个不可见2-3秒钟

FineReport qwoo0vHa 发布于 2024-5-29 15:59
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
qwoo0vHaLv3见习互助
发布于2024-5-30 16:03

setTimeout(function() {

    //监控报表

var MonitorWidget = 'a1';

//目标报表

var ValueWidget = 'a1';

//监控单元格

var MonitorCellSite = 'A3';

//报表块背景设置

//未选中背景

var bg_unchecked_JSON = {"background" : "url(/webroot/help/picture/ceshi/weixuanzhong.png)no-repeat",

                            "background-size" : "100% 100%"};

//选中背景

var bg_checked_JSON = {"background" : "url(/webroot/help/picture/ceshi/xuanzhong.png)no-repeat",

                            "background-size" : "100% 100%"};

//获取监控报表块对象

var Monitor = _g().getWidgetByName(MonitorWidget);

//获取对应的刷新报表块对象

var Refresh = _g().getWidgetByName(ValueWidget);

//获取目前对应刷新报表块的当前值,并将其赋值给oldNum

var newNum = Monitor.getCellValue(MonitorCellSite);

var oldNum = newNum; 

//初始值赋予展示的刷新报表块

if(oldNum * 1 != 0 &&  oldNum.length != 0 ) {

Refresh.setCellValue("A3", oldNum);

Refresh.css(bg_unchecked_JSON);

}

//

var global_timer = setInterval(function() {

newNum = Monitor.getCellValue(MonitorCellSite); //获取最新数据

if (newNum != oldNum && newNum * 1 != 0 && newNum.length != 0) {

//判断新值与旧值不同,设置背景变化

Refresh.css(bg_checked_JSON);

oldNum = newNum;

Refresh.setCellValue("A3", oldNum);

//一定时间后刷新回原来背景1500ms

setTimeout(() =>Refresh.css(bg_unchecked_JSON), 1500);

}

}, 3000);

}, 2000);

最佳回答
0
free_zzLv6中级互助
发布于2024-5-29 16:02

要实现这个,首先你得保存变化前的那一次的值是多少,然后每次刷新去比对值,再判断

你这1s刷新一次,这大屏挂几个小时就会卡死~

  • 1关注人数
  • 147浏览人数
  • 最后回答于:2024-5-30 16:03
    请选择关闭问题的原因
    确定 取消
    返回顶部