开始时间  结束时间为字符串   怎么实现 结束时间-开始时间  大于6个月则不能查询功能

image.png

FineReport peggy 发布于 2019-12-12 15:13
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
浪兔Lv7初级互助
发布于2019-12-12 15:15

https://help.finereport.com/doc-view-1197.html


参考如上文档。

js日期校验。

  • peggy peggy(提问者) 看过了 依然实现不了
    2019-12-12 15:16 
  • 浪兔 浪兔 回复 peggy(提问者) 怎么可能。你js怎么写的。看一下。
    2019-12-12 15:17 
  • peggy peggy(提问者) 回复 浪兔 var start = this.options.form.getWidgetByName(\"starttime\").getValue(); var end = this.options.form.getWidgetByName(\"endtime\").getValue(); var startdate = new Date(start); //将开始日期转化为Date型 var enddate = new Date(end); //将结束日期转化成Date型 alert(startdate); var subdate = (enddate - startdate) / (1000 * 60 * 60 * 24); //将两个日期相减得出的毫秒数转化为天数 if (enddate-startdate > 15) { //判断结束日期是否超过开始日期后15天 alert(\"错误,结束日期必须在开始日期15天之内\"); //结束日期超过开始日期后的十五天时提示 return false; }
    2019-12-12 15:25 
  • peggy peggy(提问者) 回复 浪兔 我的格式是YYYYMM 这个JS不识别 换成了YYYY-MM这种就识别了。
    2019-12-12 17:30 
最佳回答
1
张洪威Lv6高级互助
发布于2019-12-12 15:26(编辑于 2019-12-12 16:12)

月份判断.cpt


参考这个cpt文件吧。月份差大于6弹窗并且查询按钮不可用。


GIF.gif

  • peggy peggy(提问者) 我测试下 选的18年12月 以及19年03月 也会报大于6个月 实际上没有超过6个月
    2019-12-12 15:29 
  • 张洪威 张洪威 回复 peggy(提问者) 当时情况没想全,文件都给你了,你按年份差距大于1 跟小于1两种情况再判断月份写下应该没问题吧?
    2019-12-12 15:32 
  • peggy peggy(提问者) 回复 张洪威 我JS不太熟练才问的 我当时写的第一个JS跟你的一样
    2019-12-12 15:33 
  • 张洪威 张洪威 回复 peggy(提问者) 给你更新在回答了,js里面用FR的datedif来计算月份差就行了。
    2019-12-12 16:12 
  • peggy peggy(提问者) 回复 张洪威 再回答在哪里呢?
    2019-12-12 16:22 
最佳回答
0
孤陌Lv6资深互助
发布于2019-12-12 15:17(编辑于 2019-12-12 15:48)

那你直接限制可选日期为6个月

MONTHDELTA(CONCATENATE($rq,"-01"),6)

如果格式是yyyyMM

那公式就这样写

MONTHDELTA(FORMAT(CONCATENATE($rq,"01"),"yyyy-MM-dd"),6)

image.png

  • peggy peggy(提问者) 怎么限制呢?
    2019-12-12 15:25 
  • 孤陌 孤陌 回复 peggy(提问者) 在结束日期的控件里的结束时间写公式 MONTHDELTA(CONCATENATE($rq,\"-01\"),6) rq是开始时间的控件名
    2019-12-12 15:44 
最佳回答
0
fofantasyLv5初级互助
发布于2019-12-12 15:22

image.png

  • peggy peggy(提问者) 我不要中间那个- 我是字符串传参
    2019-12-12 15:26 
  • 5关注人数
  • 753浏览人数
  • 最后回答于:2019-12-12 16:12
    请选择关闭问题的原因
    确定 取消
    返回顶部