求大佬指点一下JS应该怎么改:获取不同季度对应的开始日期和结束日期。

目前只能做到:获取当前季度的开始和结束日期,如图一;

想要实现的效果是:当选择第一季度时,对应的开始和结束日期是:xx年-01-01,xx年-03-31;第二、三、四季度依次类推;

JS如下:

//获取统计方式stType

var stType= this.options.form.getWidgetByName("stType").getValue();

//获取控件(年)

var year= this.options.form.getWidgetByName("year").getValue();

//获取控件(上半年、下半年)

var halfYear= this.options.form.getWidgetByName("halfYear").getValue();

//获取控件(季度)

var quarter= this.options.form.getWidgetByName("quarter").getValue();

//获取控件(月份)

var month= this.options.form.getWidgetByName("month").getValue();

//获取控件(周)

var week= this.options.form.getWidgetByName("week").getValue();

//获取当前日期所在季度的第一天 

var K1='${=dateINQUARTER(TODAY(),1)}'; 

//获取当前日期所在季度的最后一天 

var K2='${=dateINQUARTER(TODAY(),-1)}'; 

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("sTime"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("eTime"); 

//给控件(开始、结束时间)赋值

state1.setValue(K1);

state2.setValue(K2);

1.png

FineReport 生活不易 发布于 2023-11-6 16:42
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2023-11-6 16:46(编辑于 2023-11-6 16:53)

这个写法

var K1='${=dateINQUARTER(TODAY(),1)}'; 

var K2='${=dateINQUARTER(TODAY(),-1)}'; 

改成这个试试

var K1=FR.remoteEvaluate('=dateINQUARTER(TODAY(),1)');

var K2=FR.remoteEvaluate('=dateINQUARTER(TODAY(),-1)');

==========

搞错。应该是,你的quarter控件,编辑后事件

var a=this.getValue();

if(a=="第一季度")

{

//获取当前日期所在季度的第一天 

var K1='${=year()}'+"-01-01"; 

//获取当前日期所在季度的最后一天 

var K2='${=year()}'+"-03-31"

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("sTime"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("eTime"); 

//给控件(开始、结束时间)赋值

state1.setValue(K1);

state2.setValue(K2);

}

else if(a=="第二季度")

{

//获取当前日期所在季度的第一天 

var K1='${=year()}'+"-04-01"; 

//获取当前日期所在季度的最后一天 

var K2='${=year()}'+"-06-30"; 

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("sTime"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("eTime"); 

//给控件(开始、结束时间)赋值

state1.setValue(K1);

state2.setValue(K2);

}

else if(a=="第三季度")

{

//获取当前日期所在季度的第一天 

var K1='${=year()}'+"-07-01"; 

//获取当前日期所在季度的最后一天 

var K2='${=year()}'+"-09-30"; 

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("sTime"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("eTime"); 

//给控件(开始、结束时间)赋值

state1.setValue(K1);

state2.setValue(K2);

}

else

{

//获取当前日期所在季度的第一天 

var K1='${=year()}'+"-10-01"; 

//获取当前日期所在季度的最后一天 

var K2='${=year()}'+"-12-31"; 

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("sTime"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("eTime"); 

//给控件(开始、结束时间)赋值

state1.setValue(K1);

state2.setValue(K2);

}

最佳回答
0
ID1208Lv6高级互助
发布于2023-11-6 16:53

image.png

image.png

动态参数 ,年度用之前的参数拼接即可

image.png

WorkBook1.rar

  • 生活不易 生活不易(提问者) 谢谢你大佬。只是我因为还有半年,月,周等时间要计算,只用了两个时间参数来接收,所以我采用了JS的方法,没有采用大佬你指点的这个方法。再次感谢大佬
    2023-11-06 17:15 
  • 2关注人数
  • 176浏览人数
  • 最后回答于:2023-11-6 16:53
    请选择关闭问题的原因
    确定 取消
    返回顶部