提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。
1、示例说明
在灵活分析(参数含2个日期控件)中,实现"当【开始时间】大于【结束时间】时,弹出提示框"。
2、设置方法
- 在资源定制中,创建一张灵活分析(带两个日期控件);
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为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
评论
刘俊 发表:
建议使用如下代码:
/**
* 类型: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);
};
}