如何用js实现日期的变动

1.JPG

我现在的查询条件如上图,当同比规则选择星期同比的话,单日L的日期就为去年对应的星期日期,当选择节日同比的时候就为跟今年的同一日。

举例 只变化单日的,月累计忽略

如果按星期同比今年是2021-06-03(星期四),那么去年就是2020-06-04(星期四)

如果按节日同比今年是 2021-10-01(星期五),那么去年就是2020-10-01(星期四)

请问我该用js或者其他方法如何实现呢

var S1_txdate = this.options.form.getWidgetByName("S1_txdate"); //2021年的日控件

var S2_txdate = this.options.form.getWidgetByName("S2_txdate"); //2020年的日控件

 

var value =this.getValue();//获取当前单选控件值

 

if(value=="T")  //按照星期同比

{

S2_txdate.setValue(???); //这里我该如何写能获得的日期是去年的同星期的

}

Else //按照节日同比

{

S2_txdate.setValue(???) //;这里我该如何写能获得的日期是去年的同一天的

FineReport oliver_zjd 发布于 2021-6-3 08:57 (编辑于 2021-6-3 09:42)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
luojian0323Lv7资深互助
发布于2021-6-3 09:36(编辑于 2021-6-3 09:38)
最佳回答
1
Z4u3z1Lv6专家互助
发布于2021-6-3 09:21(编辑于 2021-6-3 09:39)

WorkBook2.cpt----修改后的

先占个坑

WorkBook2.cpt---有误

image.png

合并上边两个公式,把上面控件RQ2_的值改一下公式即可

最佳回答
0
xiaomingyiLv6中级互助
发布于2021-6-3 09:01(编辑于 2021-6-3 09:02)

单选组件写状态变更事件,js取控件值,if判断,处理值,给控件赋值,参数面板的:https://help.fanruan.com/finereport/doc-view-1194.html?source=4

最佳回答
0
奥奥奥Lv3见习互助
发布于2021-6-3 09:08(编辑于 2021-6-3 09:32)

DATE(YEAR($RQ1_)-1,MONTH($RQ1_),DAY($RQ1_))

最佳回答
0
kaqiyuLv6初级互助
发布于2021-6-3 09:08

想问下你参数是怎么写的去年对应的星期日期?

笨方法可以条件属性控制行高为0 隐藏行,数据量大性能会慢

参数面板根据单选按钮用js隐藏其他控件,

给单选按钮添加 状态改变事件  js如下:

var form = this.options.form; var value = this.getValue(); if(value == "D"){ form.invisible(["STARTMONTH","ENDMONTH","L_STARTMONTH","L_ENDMONTH","STARTWEEK","ENDWEEK","L_STARTWEEK","L_ENDWEEK"]); form.visible(["STARTDATE","ENDDATE","L_STARTDATE","L_ENDDATE"]); } if(value == "M"){ form.invisible(["STARTDATE","ENDDATE","L_STARTDATE","L_ENDDATE","STARTWEEK","ENDWEEK","L_STARTWEEK","L_ENDWEEK"]); form.visible(["STARTMONTH","ENDMONTH","L_STARTMONTH","L_ENDMONTH"]); } else if(value == "W"){ form.invisible(["STARTDATE","ENDDATE","L_STARTDATE","L_ENDDATE","STARTMONTH","ENDMONTH","L_STARTMONTH","L_ENDMONTH"]); form.visible(["STARTWEEK","ENDWEEK","L_STARTWEEK","L_ENDWEEK"]); }

  • kaqiyu kaqiyu 回复 oliver_zjd(提问者) 我说的只是隐藏控件的js,日期控件的值还是要数据字典去控制,不要写在js里面
    2021-06-03 09:34 
  • kaqiyu kaqiyu 回复 oliver_zjd(提问者) 去年同周 format(DATEINWEEK(DATEDELTA(today(),-365),weekday(today)),\"yyyy-MM-dd\") 去年同日 YEARDELTA(today(), -1 ) 把这个绑在日期控件上即可
    2021-06-03 09:45 
  • 5关注人数
  • 540浏览人数
  • 最后回答于:2021-6-3 09:42
    请选择关闭问题的原因
    确定 取消
    返回顶部