问题:时间段报表联动
问题传送门:http://bbs.fanruan.com/thread-85810-1-1.html
分别做p1 p2 p3 3个参数,p1是下拉框 p2是开始时间 p3是结束时间
p2日期控件初始化事件
- FR.p2=this;//把控件赋值给变量,省得获取的时候写一长串代码
复制代码 p3日期控件初始化事件- FR.p3=this;//把控件赋值给变量,省得获取的时候写一长串代码
复制代码 p1下拉框编辑后事件
- var sfv = this.getValue();
- var start = '';
- var end = '';
- if(sfv == '本月'){
- start = FR.remoteEvaluate('FORMAT(DATEINMONTH(TODAY(),1),"yyyy-MM-dd")');
- end = FR.remoteEvaluate('FORMAT(DATEINMONTH(TODAY(),-1),"yyyy-MM-dd")');
- }else if(sfv == '上月'){
- start = FR.remoteEvaluate('FORMAT(DATEINMONTH(DATEDELTA(DATEINMONTH(TODAY(),1),-1),1),"yyyy-MM-dd")');
- end = FR.remoteEvaluate('FORMAT(DATEINMONTH(DATEDELTA(DATEINMONTH(TODAY(),1),-1),-1),"yyyy-MM-dd")');
- }else if(sfv == '本周'){
- start = FR.remoteEvaluate('FORMAT(DATEINWEEK(TODAY(),1),"yyyy-MM-dd")');
- end = FR.remoteEvaluate('FORMAT(DATEINWEEK(TODAY(),-1),"yyyy-MM-dd")');
- }else if(sfv == '上周'){
- start = FR.remoteEvaluate('FORMAT(DATEINWEEK(DATEDELTA(DATEINWEEK(TODAY(),1),-1),1),"yyyy-MM-dd")');
- end = FR.remoteEvaluate('FORMAT(DATEINWEEK(DATEDELTA(DATEINWEEK(TODAY(),1),-1),-1),"yyyy-MM-dd")');
- }
- FR.p2.setValue(start);
- FR.p3.setValue(end);
复制代码 OK了~
说一下公式是什么个意思
DATEINMONTH/DATEINWEEK对today求1和-1分别得到的是本月/周的第一天和最后一天,DATEDELTA对本月/周第一天求-1就是上月/周的最后一天,再用DATEINMONTH/DATEINWEEK求1就得到上月/周的第一天
所以上面的上月/周最后一天还可以写成
- FORMAT(DATEDELTA(DATEINMONTH(TODAY(),1),-1),"yyyy-MM-dd")
- FORMAT(DATEDELTA(DATEINWEEK(TODAY(),1),-1),"yyyy-MM-dd")
复制代码
|