页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


注意
title温馨提示

本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。

示例说明

对于电子表格报表,定时刷新也是项目中比较常用的需求,如资源在大屏幕展示,要求当数据有变化时,页面会自动刷新,而不需要用户每次都要自己手动刷新一下报表。参考示例:

 


设置方法

1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。

...

4、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRenderReport、并把下面宏代码复制到代码编辑区域。

 


宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

宏代码

代码块
languagejs
linenumberstrue
function main(spreadsheetReport) {
    // 间隔2秒定时刷新报表
    var timer = setInterval(function() {
		if(!spreadsheetReport.command){//确保页面销毁后还继续刷新
			clearInterval(timer);
			return;
		}
        spreadsheetReport.doRefresh();
    },
    1000 * 2)
};

...

代码块
languagejs
linenumberstrue
function main(spreadsheetReport) {
    if (!spreadsheetReport.setCellConditionalFormat) {
        var SpreadsheetReport_Modify = jsloader.resolve('smartbi.spreadsheetreport.SpreadsheetReport_Modify');
        new SpreadsheetReport_Modify(spreadsheetReport);
    }
    if (spreadsheetReport.onRenderSetInterval) {
        return;
    }
    spreadsheetReport.onRenderSetInterval = setInterval(function() {
		if            try {
                if (!spreadsheetReport.command) { //确保页面销毁后还继续刷新
			
                    clearInterval(spreadsheetReport.onRenderSetInterval);
			return;
		}
                    return;
                }
                spreadsheetReport.doAjaxRefresh();
            } catch (e) {}
        },
        1000 * 21);
}

...


如果想要定时刷新的时候同时获取系统时间设置到参数上,可参考如下宏代码:

...

  • 报表刷新方法:spreadsheetReport.doRefresh();
  • 使用 setInterval 方法设置定时时间。

...