日期控件之间的联动该怎么实现?

如图,有3个日期控件,希望实现改变年月的值,时间范围内的两个日期控件值也随之改变(时间范围控件后面会隐藏掉),让开始时间控件的值为年月控件的值,结束时间控件的值为年月控件值加上5个月的时间,通过JS实现让开始控件的值可以等于年月控件值,但是结束时间的控件的改变出现了问题,无论选Negev月份其都为十月,以下3张图中图一为默认值

js代码如下

var bdate=this.options.form.getWidgetByName("年月");

var sdate=this.options.form.getWidgetByName("startime");

var edate=this.options.form.getWidgetByName("endtime");

var bvalue= bdate.getValue();

var evalue= FR.remoteEvaluate('=FORMAT(DATEDELTA(CONCATENATE(left(bvalue,4),"-",right(bvalue,2),"-","01","-"),180),"yyyyMM")');

sdate.setValue(bvalue);

edate.setValue(evalue);

_g().refreshAllSheets()

请各位大佬指教下该怎么修改?

1、

image.png

2、

image.png

3、

image.png

FineReport 帆软用户yrhpGkaQTi 发布于 2023-4-26 15:53 (编辑于 2023-4-26 15:54)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
LTC朝Lv6高级互助
发布于2023-4-26 15:54(编辑于 2023-4-26 16:57)

demo.zip

直接在参数中写公式就行了,没必要用JS

效果:

demo.zip

------------------------------------------------------------

image.png

image.png

  • 帆软用户yrhpGkaQTi 帆软用户yrhpGkaQTi(提问者) 怎么写啊?试过公式,但是不起作用才改用js的
    2023-04-26 15:55 
  • LTC朝 LTC朝 回复 帆软用户yrhpGkaQTi(提问者) 上传了一个demo
    2023-04-26 16:02 
  • 帆软用户yrhpGkaQTi 帆软用户yrhpGkaQTi(提问者) 回复 LTC朝 感谢大佬,这是可以的,但是有个问题,我的时间格式是yyyyMM的,结束时间该怎么转化过来运算啊?自己写了个转发运算的但是不起作用if(len($年月) = 0, \'\', MONTHDELTA(format($年月,\"yyyy-MM\"),5))
    2023-04-26 16:17 
  • LTC朝 LTC朝 回复 帆软用户yrhpGkaQTi(提问者) 这属于自定义格式,不需要使用日期控件了吧
    2023-04-26 16:34 
  • LTC朝 LTC朝 回复 帆软用户yrhpGkaQTi(提问者) 通过format函数进行格式转换
    2023-04-26 16:34 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-26 15:59

var bvalue= bdate.getValue();

改成

var bvalue= bdate.getText();试试

最佳回答
0
qiqits1984Lv6中级互助
发布于2023-4-26 16:04(编辑于 2023-4-26 16:12)

不用写js

直接写参数就行

第一个日期绑定到参数上,后面的两个日期引用 这个参数 做日期计算

image.png

image.png

image.png

image.png

  • 帆软用户yrhpGkaQTi 帆软用户yrhpGkaQTi(提问者) 我的时间格式是yyyyMM的,结束时间该怎么转化过来运算啊?自己写了个转化运算的但是不起作用if(len($年月) = 0, \\\'\\\', MONTHDELTA(format($年月,\\\"yyyy-MM\\\"),5)),该怎么转化过来?
    2023-04-26 16:31 
  • 3关注人数
  • 273浏览人数
  • 最后回答于:2023-4-26 16:57
    请选择关闭问题的原因
    确定 取消
    返回顶部