当我点击上一周时查询上一周的数据, 点击下一周时查下一周的数据, 应该怎么判断和传值




FineReport 柯咚咚 发布于 2020-5-11 14:02 (编辑于 2020-5-11 15:38)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
luojian0323Lv7资深互助
发布于2020-5-11 14:17(编辑于 2020-5-11 15:42)

测试.frm

上周 和下周 两个按钮你放在参数面板还是报表中?

那你要想实现这个样效果.需要在参数面板也添加一个数值控件比如week ,并设置一个默认值0,然后隐藏控件, 
数据集中添加这样的参数 SELECT* FROM 表名 WHERE YEARWEEK( date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now()+"${week}")
 那么在上周这个按钮的点击事件中,写上代码: 
var a=contentPane.parameterEl.getWidgetByName("week"); 
var b=a.getValue(); a.setValue(b-1) 
_g().parameterCommit();
然后在下周这个按钮的点击事件中,写上代码: 
var a=contentPane.parameterEl.getWidgetByName("week"); 
var b=a.getValue(); a.setValue(b+1)
_g().parameterCommit();


  • 柯咚咚 柯咚咚(提问者) 报表中
    2020-05-11 14:20 
  • 柯咚咚 柯咚咚(提问者) 有什么好的思路吗?
    2020-05-11 14:22 
  • luojian0323 luojian0323 回复 柯咚咚(提问者) 那你要想实现这个样效果.需要在参数面板也添加一个数值控件比如week ,并设置一个默认值0,然后隐藏控件, 数据集中添加这样的参数 SELECT* FROM 表名 WHERE YEARWEEK( date_format(时间字段,\'%Y-%m-%d\')) = YEARWEEK(now()+\"${week}\") 那么在上周这个按钮的点击事件中,写上代码: var a=contentPane.parameterEl.getWidgetByName(\"week\"); var b=a.getValue(); a.setValue(b-1) _g().parameterCommit(); 然后在下周这个按钮的点击事件中,写上代码: var a=contentPane.parameterEl.getWidgetByName(\"week\"); var b=a.getValue(); a.setValue(b+1) _g().parameterCommit();
    2020-05-11 14:40 
  • 柯咚咚 柯咚咚(提问者) 回复 luojian0323 var a=contentPane.parameterEl.getWidgetByName(\"id\"); var b=a.getValue(); a.setValue(b-1)
    2020-05-11 15:00 
  • 柯咚咚 柯咚咚(提问者) 回复 luojian0323 有问题 我控件名 叫 id
    2020-05-11 15:00 
最佳回答
0
lisk_njLv4初级互助
发布于2020-5-11 14:19

可以添加事件吧,点击按钮时,那个参数取到日期中的星期后-1,再拼接字段赋值给这个参数。

就是一个思路,你试试

  • 柯咚咚 柯咚咚(提问者) 问题是 我这边不知道怎么获取星期 sql的函数 在公式里用不了
    2020-05-11 14:34 
  • lisk_nj lisk_nj 回复 柯咚咚(提问者) week(now())现在是当年的第几周
    2020-05-11 14:45 
  • luojian0323 luojian0323 回复 lisk_nj week(now())是本周 当你点上周的时候.实际是本周-1周.也就是上周 同样 你点下周的时候,实际是本周+1周,也就是下周. 如果id是负数也没关系,点下周的时候,负数会不断+1
    2020-05-11 15:06 
  • luojian0323 luojian0323 决策报表替换成这个: var a=this.options.getWidgetByName(\"id\")
    2020-05-11 15:12 
  • 柯咚咚 柯咚咚(提问者) 回复 luojian0323 还是有问题 你看看我发的项目 再改改看
    2020-05-11 15:20 
最佳回答
0
touyuan001Lv6中级互助
发布于2020-5-11 14:21

通过JS实现,通过按钮来改变日期控件的值,并自动查询。记得做个延时,不然有时结果会与上次查询一致

1、获取日期控件;

2、给控件赋值(setValue);

3、自动查询(_g().parameterCommit();)

  • 柯咚咚 柯咚咚(提问者) 我现在的问题是 : 赋值, 赋个什么值 才能查询上一周的数据
    2020-05-11 14:29 
  • touyuan001 touyuan001 回复 柯咚咚(提问者) 当前日期控件的值 减去7天或加上7天啊。format((todate(\"2020-05-11\",\"yyyy-MM-dd\")-7,\"yyyy-MM-dd\")
    2020-05-11 14:57 
  • 4关注人数
  • 653浏览人数
  • 最后回答于:2020-5-11 15:42
    请选择关闭问题的原因
    确定 取消
    返回顶部