帆软报表-控件范围筛选

帆软报表-控件范围筛选

背景:了解报表的人都晓得报表的正文展示前一般都有一些筛选控件,以供筛选出想要的数据,但是往往有用户使用不当,导致报表服务器出现内存不足等问题出现,为了规避这种情况出现,限制用户对报表控件的筛选是一种方法。

举例:日期控件范围筛选限制,本次案例是对日期范围的限制,只允许筛选365天范围内

报表参数面板
帆软报表-控件范围筛选_第1张图片
步骤如下:
1.获取填写日期的控件名称
帆软报表-控件范围筛选_第2张图片
2.在查询按钮上编写事件JS,事件JS编写处可选择出发时机(点击/初始化),这里选择点击
帆软报表-控件范围筛选_第3张图片
3.编写JS代码时,可设置参数,引用JS文件
帆软报表-控件范围筛选_第4张图片
帆软报表-控件范围筛选_第5张图片
4.案例脚本:

//获取日期控件参数值,需根据报表的控件参数名替换此示例的参数名:此处是 p_date_start,p_date_end
var str_1 =this.options.form.getWidgetByName("p_date_start").getValue(); //开始日期
var str_2 =this.options.form.getWidgetByName("p_date_end").getValue(); // 截止日期

//将日期yyyymmdd 切割 
var str_year_start=str_1.substr(0,4);
var str_month_start=str_1.substr(4,2);
var str_day_start=str_1.substr(6,2);

var str_year_end=str_2.substr(0,4);
var str_month_end=str_2.substr(4,2);
var str_day_end=str_2.substr(6,2);

var str_line= new String("-");
//拼接 成yyyy-mm-dd 格式
var p_date_1= str_year_start.concat(str_line,str_month_start,str_line,str_day_start);
var p_date_2= str_year_end.concat(str_line,str_month_end,str_line,str_day_end);

// 将yyyy-mm-dd 字符串类型 转成 时间型
var date_start= new Date(p_date_1);
var date_end= new Date(p_date_2);
// 日期做差,单位是 天
var p_diff = (date_end-date_start)/60/60/24/1000
// xxx 标识 使用范围限制的日期控件名称,有的报表多个日期筛选,必须提示是作用于哪个筛选
var str_alert_1 = new String("xxx查询跨度只能在"); 
var str_alert_2 = new String("天内,请重新选择!");
//这里的365可以设置成参数
var str_alert_all = str_alert_1.concat(365,str_alert_2)

if (p_diff>365 )
{
	alert (str_alert_all);
	return false;
}
else
{ return true;}

5.效果展示,若是筛选日期范围超过365天则会弹出提示框
帆软报表-控件范围筛选_第6张图片


温馨提示:以上只是帆软JS应用的冰山一角,还有更多应用等待你发掘,同时在帆软的技术学习论坛内也有许多案例,另如果你下载了帆软,可用帆软设计器打开帆软目录:FineReport_9.0\WebReport\WEB-INF\reportlets\doc
这里有很多设计器模板供你参考,其中就有目录:FineReport_9.0\WebReport\WEB-INF\reportlets\doc\JS 下有JS模板
****

你可能感兴趣的:(BI-帆软)