页面树结构
转至元数据结尾
转至元数据起始

示例说明

客户需求:在电子表格报表中,存在 开始时间结束时间 参数,客户的需求是开始时间不能大于结束时间,若大于则弹出提示。类似上述需求,可以参照如下方法进行设置。参考示例:

版本及客户端说明

1.smartbi版本:v6.1/v6.2

2.客户端:PC

3.浏览器:IE11、谷歌浏览器(Chrome)、火狐浏览器(Firefox)

设置方法

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

示例中有开始时间及结束时间参数:

2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。

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

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

 

宏代码

function main(spreadsheetReport) {
    spreadsheetReport._jhy_doRefresh = spreadsheetReport.doRefresh;
    spreadsheetReport.doRefresh = function(fromButton, delayMask) {
        var endtime = new Date(spreadsheetReport.getParameterValue("结束时间"));
        var starttime = new Date(spreadsheetReport.getParameterValue("开始时间"));
        if (endtime < starttime) {
            //windowAlert("结束时间不能早于开始时间");
            setTimeout(function() {
                alert("结束时间不能早于开始时间");
            }, 100);
            return;
        }
        this._jhy_doRefresh(fromButton, delayMask);
    }
}
       

 

注:结束时间减去开始时间大于90天时弹出提示,可参考以下宏代码。

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

function main(spreadsheetReport) {
    spreadsheetReport._jhy_doRefresh = spreadsheetReport.doRefresh;
    spreadsheetReport.doRefresh = function(fromButton, delayMask) {
        var endtime = new Date(spreadsheetReport.getParameterValue("结束日期").replace(/\-/g, "/"));
        var starttime = new Date(spreadsheetReport.getParameterValue("开始日期").replace(/\-/g, "/"));
        if (endtime.getTime() - starttime.getTime() > 1000 * 3600 * 24 * 90) {
            //windowAlert("结束时间不能早于开始时间");
            setTimeout(function() {
                alert("两个参数的差不能超过90天");
            },
            100);
            return;
        }
        this._jhy_doRefresh(fromButton, delayMask);
    }
}

 

 

  • 无标签