筛选控件有开始日期和结束日期,如果开始日期和结束日期跨季度了,那么提示弹窗或者数据都为空

筛选控件有开始日期和结束日期,如果开始日期和结束跨季度了或者跨年,比如开始时间是1月1日,结束时间是4月1日,那么提示弹窗或者数据都为空

FineReport 帆软用户ICfzeObrHc 发布于 2023-10-16 13:43 (编辑于 2023-10-16 13:44)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-10-16 14:01(编辑于 2023-10-16 15:04)

结束时间编辑结束

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

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

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

var state2 = this.getValue();

var start = FR.remoteEvaluate('DATEINQUARTER("'+state1+'", 1)');

var end = FR.remoteEvaluate('DATEINQUARTER("'+state2+'", 1)');

if(start !=end&&state1.length>0&&state2.length>0){

alert("跨季度了")

}

image.png

原理是获取开始日期和结束的日期季度开始的第一天,一样就是 一个季度,不一样就是跨季度了,分别给开始时间和结束时间添加编辑后事件

  • 帆软用户ICfzeObrHc 帆软用户ICfzeObrHc(提问者) 最后的判断是不是有点问题,我直接start!=end 实际操作的时候跨季度了这个判断进不去
    2023-10-16 14:50 
  • 帆软用户ICfzeObrHc 帆软用户ICfzeObrHc(提问者) //获取控件(开始时间) var state1 = this.options.form.getWidgetByName(\"stratDay\"); //获取控件(结束时间) var state2 = this.options.form.getWidgetByName(\"day\"); var start = FR.remoteEvaluate(\'=DATEINQUARTER(\"\'+state1+\'\",1)\'); var end = FR.remoteEvaluate(\'=DATEINQUARTER(\"\'+state2+\'\",1)\'); if(start!=end){ alert(\"开始和结束日期不能跨季度\"); }
    2023-10-16 14:51 
  • 用户k6280494 用户k6280494 回复 帆软用户ICfzeObrHc(提问者) 不好意思,js有问题,没写getValue
    2023-10-16 15:03 
  • 用户k6280494 用户k6280494 回复 帆软用户ICfzeObrHc(提问者) 回答里的js改了
    2023-10-16 15:04 
  • 用户k6280494 用户k6280494 回复 帆软用户ICfzeObrHc(提问者) 还是要判断一下长度,如果有默认值可以不判断长度
    2023-10-16 15:05 
最佳回答
1
CD20160914Lv8专家互助
发布于2023-10-16 13:51(编辑于 2023-10-16 13:57)

select * from 表名称

where 1=1

${if(ROUNDUP(MONTH(开始日期)/3,0)!=ROUNDUP(MONTH(结束日期)/3,0),"and 1=0","and 时间字段>='"+开始日期 +"'")}

${if(ROUNDUP(MONTH(开始日期)/3,0)!=ROUNDUP(MONTH(结束日期)/3,0),"and 1=0","and 时间字段>='"+结束日期 +"'")}

image.png

image.png

方法2多增加一个控件,用公式计算两个日期的季度,然后单独放一个按钮去判断是一样的

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

if(a==0){

alert("日期范围不在一个季度,不能查询");

return false;

}

else {

_g().parameterCommit();

}

image.png

image.png

最佳回答
0
快乐星光Lv5中级互助
发布于2023-10-16 13:52

你这个跨季度是什么意思:是开始日期和结束日期的间距大于三个月,还是不能跨自然日期的季度?

  • 帆软用户ICfzeObrHc 帆软用户ICfzeObrHc(提问者) 不能跨自然季度,比如开始日期是3月31日,结束日期在4月1日,这样的场景就符合跨季度了
    2023-10-16 13:56 
  • 快乐星光 快乐星光 回复 帆软用户ICfzeObrHc(提问者) 那就楼上大佬的,再添加一个年对比就行了。
    2023-10-16 13:59 
  • 4关注人数
  • 383浏览人数
  • 最后回答于:2023-10-16 15:04
    请选择关闭问题的原因
    确定 取消
    返回顶部