JS如何实现决策报表内报表块的刷新

JS如何实现决策报表内报表块的刷新

刷新后当前报表块的初始化事件要能再次执行

现在通过定时刷行插件无法做到初始化事件再次执行

但是我这边有一个决策报表内报表块,可以实现刷新执行初始化事件,功能是定期刷新,判断指定值,并且播放声音提示。具体三段代码如下:

初始化后1

setTimeout(function() {

    //隐藏报表块report000的滚动条(此报表块名为report000,根据具体情况修改)

    $("div[widgetname=REPORT000]").find(".frozen-north")[0].style.overflow = "hidden";

    $("div[widgetname=REPORT000]").find(".frozen-center")[0].style.overflow = "hidden";

}, 500);

window.flag1 = true;

var self1 = this;

//鼠标悬停,滚动停止

setTimeout(function() {

    $("div[widgetname=REPORT000]").find(".frozen-center").mouseover(function() {

        window.flag1 = false;

    });

    //鼠标离开,继续滚动

    $("div[widgetname=REPORT000]").find(".frozen-center").mouseleave(function() {

        window.flag1 = true;

    });

    var old = -1;

    var interval = setInterval(function() {

     if(!self1.isVisible()){

      return;

     }

        if(window.flag1) {

            currentpos1 = $("div[widgetname=REPORT000]").find(".frozen-center")[0].scrollTop;

            if(currentpos1 == old) {

                $("div[widgetname=REPORT000]").find(".frozen-center")[0].scrollTop = 0;

            } else {

                old = currentpos1;

                //以35ms的速度每次滚动1.5PX

                $("div[widgetname=REPORT000]").find(".frozen-center")[0].scrollTop = currentpos1 + 1;

            }

        }

    }, 35);

}, 1000);

初始化后2

var form = this.options.form;

setInterval(function() {

     form.getWidgetByName("report000").gotoPage(1,"{}",true);

}, 4000);

初始化后3

var form = this.options.form;

setInterval(function() {

var mm=0//设定预警值

var num=FR.remoteEvaluate("=report000~D4");//监测值

var $alramDiv;

//判断报警提示alarmDiv是否存在,如果不存在,则初始化

 

if($("#alarmDiv").length>0){

    $alramDiv=$("#alarmDiv");

} else{

     

    $alramDiv=$('<div id="alarmDiv"></div>').appendTo($(document.body));

}

//清空报警对象,防止多次刷新后造成多次播放

$alramDiv.empty();

//alert(num)

if(num>=mm){

     

   if(FR.Browser.isIE()){

        //loop="-1"表示声音无限循环,可以指定数字来控制循环次数

        $('<bgsound src="../../scripts/操作成功.mp3" loop="1">').appendTo($alramDiv);

    } else {

        //loop="true"表示声音无限循环,去掉则播放一次

        $('<audio src="../../scripts/操作成功.mp3" type="audio/mp3" hidden="true" autoplay="true">' ).appendTo($alramDiv);

    }

   

    }

   

}, 4000); //刷新报表块report000

FineReport yyfnet 发布于 2022-5-17 16:23 (编辑于 2022-5-17 16:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-5-17 16:24

目前js刷新做不到初始化事件触发。。。。

  • yyfnet yyfnet(提问者) 有一个决策报表内报表块刷新,能执行初始化事件的。
    2022-05-17 16:29 
  • snrtuemc snrtuemc 回复 yyfnet(提问者) 不能,目前不管报表块刷新插件,还是js,都不会触发初始化事件,除非整个决策报表刷新。。。
    2022-05-17 16:31 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-5-17 16:30

var form = this.options.form;

setInterval(function() {

     //通过js代码刷新报表块数据

    form.getWidgetByName('report0').gotoPage(1,"{}",true);    

}, 10000);//10秒钟对报表块刷新一次。。至于是否初始化事件要能再次执行这个没有验证。

  • yyfnet yyfnet(提问者) 这个JS刷新报表块的是不能实现刷新后再次执行初始化事件的,尝试过了
    2022-05-17 16:36 
  • CD20160914 CD20160914 回复 yyfnet(提问者) 那目前无解了。你只能刷新整个报表了。。
    2022-05-17 16:38 
  • CD20160914 CD20160914 回复 yyfnet(提问者) 那你用这一段改不行??
    2022-05-17 16:48 
  • yyfnet yyfnet(提问者) 回复 CD20160914 不行,所以奇怪
    2022-05-17 16:55 
  • CD20160914 CD20160914 回复 yyfnet(提问者) 这个报表是不是还有什么代码吧。你复制它决策报表。。然后放你的报表块也不行?
    2022-05-17 16:56 
最佳回答
0
NikoLv4见习互助
发布于2022-5-18 09:06
  • 3关注人数
  • 969浏览人数
  • 最后回答于:2022-5-18 09:06
    请选择关闭问题的原因
    确定 取消
    返回顶部