【应用场景】
报表控件的数据需要做特殊的过滤,例如:日历控件选定了某个日期,趋势图只想查询1号-选定日期的值, 而不是所有小于指定日期的值,可以使用查询脚本
【机制】
在控件向服务器请求数据之前,通过脚本动态修改参数,实现特殊的查询需求
【示例】
//浏览器控制台打印出query,这个变量是控件提交给服务器的查询参数,可以通过修改query里面的条件实现特殊查询 console.log(query); var endDateStr = null; //找出过滤条件中的日期 for(var i = 0; i < query.filterKeys.length; i++){ if(query.filterKeys[i] === "日期"){ //这里请将日期修改为相应的字段名 endDateStr = query.filterValues[i]; break; } } if(endDateStr != null){ var fromDateStr = endDateStr.substr(0,7)+"-01"; //将 2019-10截取出来,拼装成 2019-10-01 console.log("fromDateStr: "+fromDateStr); query.filterKeys.push("日期"); //这里请将日期修改为相应的字段名 query.filterValues.push(" >='"+fromDateStr+"' "); } //再次打印query,在控制台看看是否修改成功,是否与其他字段冲突 //最后生成的sql就是 日期 >= '2019-10-01' and 日期 <= '2019-10-xx' console.log(query);