示例说明
在灵活分析中对文本框参数的输入值进行限制,如下图:A 参数值不能小于12,B参数值不能小于A。
设置方法
宏类型
类型 | 对象 | 事件 |
ClientSide | simpleReport | onParamValueChanged |
宏代码
function main(simpleReport, simpleReportContext) { // 定义参数名称 var startParamName = "A"; var endParamName = "B"; // 定义参数值的条件函数 function checkStartParam(val) { return parseInt(val) > 12; } function checkEndParam(startVal, endVal) { return parseInt(endVal) > parseInt(startVal); } // 获得参数控件 var startParamInput = getParamComponentByName(simpleReport, startParamName); if (!startParamInput) { alert("找不到参数:" + startParamName); return; } var endParamInput = getParamComponentByName(simpleReport, endParamName); if (!endParamInput) { alert("找不到参数:" + endParamName); return; } startParamInput.__oldValue = startParamInput.value; endParamInput.__oldValue = endParamInput.value; // 绑定事件检查非法字符输入 startParamInput.onkeydown = checkKeydown; endParamInput.onkeydown = checkKeydown; // 绑定事件检查条件函数 if (domutils.isIE()) { startParamInput.onpropertychange = function() { if (checkStartParam(startParamInput.value)) { startParamInput.__oldValue = startParamInput.value; } else { alert("参数" + startParamName + "不符合条件,输入值应大于12"); startParamInput.value = startParamInput.__oldValue; } }; endParamInput.onpropertychange = function() { if (checkEndParam(startParamInput.value, endParamInput.value)) { endParamInput.__oldValue = endParamInput.value; } else { alert("参数" + endParamName + "不符合条件,输入值应大于参数A的值"); endParamInput.value = endParamInput.__oldValue; } }; } else { startParamInput.onblur = function() { if (checkStartParam(startParamInput.value)) { startParamInput.__oldValue = startParamInput.value; } else { alert("参数" + startParamName + "不符合条件,输入值应大于12"); startParamInput.value = startParamInput.__oldValue; } }; endParamInput.onblur = function() { if (checkEndParam(startParamInput.value, endParamInput.value)) { endParamInput.__oldValue = endParamInput.value; } else { alert("参数" + endParamName + "不符合条件,输入值应大于参数A的值"); endParamInput.value = endParamInput.__oldValue; } }; } } // 检查非法字符 function checkKeydown() { var ev = window.event; if (!isValidKey(ev.keyCode)) { ev.returnValue = false; return; } } // 判断哪些字符是有效的 function isValidKey(keyCode) { //return 48 / 0 / <=keyCode && keyCode <= 57 / 9 / ||keyCode == 46 / Delete / ||keyCode == 8 / Backspace / ||keyCode == 9 / Tab / ||keyCode == 37 / Left / ||k//eyCode == 39 / Right / ; return (keyCode >= 48 && keyCode <= 57) || keyCode == 46 || keyCode == 8 || keyCode == 9 || keyCode == 37 || keyCode == 39; } // 通过参数名获得参数控件 function getParamComponentByName(simpleReport, paramName) { var paramIndex = getParamIndexByName(simpleReport, paramName); if (paramIndex < 0) { return null; } return simpleReport.paramPanelObj.paramObjList[paramIndex]; } // 通过参数名获得参数序号 function getParamIndexByName(simpleReport, paramName) { for (var i = 0; i < simpleReport.params.length; i++) { with(simpleReport.params[i]) { if (name == paramName) { return i; } if (alias == paramName) { return i; } } } reutrn - 1; } |
关键对象总结
资源文件:migrate.xml