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

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

1、示例说明

在灵活分析(参数含2个日期控件)中,实现"当【开始时间】大于【结束时间】时,弹出提示框"。


2设置方法

  1. 在资源定制中,创建一张灵活分析(带两个日期控件);
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onParamValueChanged;并把下面宏代码复制到代码区域。

2.1 宏类型

类型

对象

事件

ClientSide

simpleReport

onParamValueChanged


2.2 宏代码

function main(simpleReport, simpleReportContext, param) {
	// 从param参数中可以获取当前参数的相关信息,然后进行相应处理
 
	// 根据参数名称获取参数值(注意不是参数的别名)
    var beginValue = simpleReport.getCurrentParamValue("startTime");
    var endValue = simpleReport.getCurrentParamValue("endTime");
    if (beginValue > endValue) {
        simpleReport.notRefresh = true; // 禁止刷新
        alert('开始时间要小于结束时间');
    } else {
        simpleReport.notRefresh = false; // 允许刷新
    }
}


3、关键对象总结

  • 根据参数名获取参数值:simpleReport.getCurrentParamValue("BeginTime");

4、资源下载

资源下载:migrate开始时间大于结束时间弹出提示框.xml 


评论

  1. 刘俊 发表:

    建议使用如下代码:

    /**
    * 类型:ClientSide
    * 对象:simpleReport
    * 事件:onRender
    */
    function main(simpleReport, simpleReportContext) {
    simpleReport._old_refreshData = simpleReport.refreshData;
    simpleReport.refreshData = function (refresh, noExecuteQuery, executeInMem) {
    var endtime = new Date(simpleReport.getCurrentParamValue("结束日期").replace(/\-/g, "/"));
    var starttime = new Date(simpleReport.getCurrentParamValue("开始日期").replace(/\-/g, "/"));
    if (endtime.getTime() < starttime.getTime() ) {
    alert("开始日期不能大于结束日期");
    return;
    }
    simpleReport._old_refreshData(refresh, noExecuteQuery, executeInMem);
    };
    }