如何实现在参数面板选择两个日期,点击查询后,计算两个日期之间的天数并存入一个变量,可以在报表中引用?

如何实现在参数面板选择两个日期,点击查询后,计算两个日期之间的天数并存入一个变量,可以在报表中引用?

FineReport baiyantang 发布于 2019-7-3 16:36
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
张洪威Lv6高级互助
发布于2019-7-3 16:39(编辑于 2019-7-3 16:39)

两个日期已经是变量了啊,你用datedif 不就直接能得出天数差吗。

直接传datedif('${begin}','${end}',"D") 就可以了。

  • baiyantang baiyantang(提问者) 我需要在报表中引用这个天数,就是在参数面板上设置公式的话,它只取点击查询前两日期参数的默认值,我变更日期后的天数计算不出来,也就是说参数公式在查询点击前起效,点击后不重新获取。
    2019-07-03 16:42 
  • 张洪威 张洪威 回复 baiyantang(提问者) 你在单元格里面直接用公式求两个的时间差不就出来了吗。还是说你其实只有一个时间控件,是两次不同的查询需要记录两次查询的筛选日期?
    2019-07-03 16:45 
  • baiyantang baiyantang(提问者) 是我描述的不清楚,我的需求是这样的: 参数面板有两个控件,分别是开始日期和结束日期,我根据需要点击开始日期和结束日期后查询数据,报表中的有些计算要用到这两个日期之间的天数,因此我需要把它存入一个变量,例如这个变量名叫:YGTS(已过天数的意思)。 现在的问题是:我一打开浏览器,还没有选择日期时,这个天数变量就根据控件默认值计算出来了,显然这不是我想要的,以前在FR6.5的时候没问题,现在FR8.0就有这个问题。谢谢你的回答。
    2019-07-03 16:51 
最佳回答
0
天空-小孙Lv4初级互助
发布于2019-7-3 16:41

可以啊,$结束时间 -   $开始时间,用公式算下天数

  • baiyantang baiyantang(提问者) 不是这个意思,就是计算出来的天数需要存在一个变量中,我在报表其他地方引用,现在在参数面板设置公式它只提取查询点击前的日期,变更后不更新
    2019-07-03 16:44 
最佳回答
0
刘牛牛Lv3见习互助
发布于2019-7-3 16:52

那你可以试下日期的编辑结束事件,然后重现刷新该页面呢

  • baiyantang baiyantang(提问者) 因为这个变量在参数面板上,一打开页面它就根据日期控件默认值计算出来了,而不会根据我选择的日期动态更新
    2019-07-03 16:53 
  • 刘牛牛 刘牛牛 回复 baiyantang(提问者) 我理解你的意思,我的意思是你在日期编辑后事件里写JS重新刷下页面,也就是当你重新选择了日期,会运行这个JS,自动加载页面
    2019-07-03 16:56 
  • baiyantang baiyantang(提问者) 是我描述的不清楚,我的需求是这样的: 参数面板有两个控件,分别是开始日期和结束日期,我根据需要点击开始日期和结束日期后查询数据,报表中的有些计算要用到这两个日期之间的天数,因此我需要把它存入一个变量,例如这个变量名叫:YGTS (已过天数的意思)。 现在的问题是:我一打开浏览器,还没有选择日期时,这个天数变量就根据控件默认值计算出来了,显然这不是我想要的,以前在FR6.5的时候没问题,现在FR8.0就有这个问题。谢谢你的回答。
    2019-07-03 17:02 
  • 刘牛牛 刘牛牛 回复 baiyantang(提问者) 好吧没事
    2019-07-03 17:05 
最佳回答
0
axingLv6专家互助
发布于2019-7-3 19:37

定义一个模板参数,然后就可以直接引用了

DATEDIF($开始日期,$结束日期,"D")
image.png
最佳回答
0
19803063997Lv6高级互助
发布于2019-7-4 17:10

你可以设置三个参数,“开始日期/结束日期/时间差”

  • 6关注人数
  • 889浏览人数
  • 最后回答于:2019-7-4 17:10
    请选择关闭问题的原因
    确定 取消
    返回顶部