决策报表问题。

image.png我想在这个决策报表中假如俩个按钮空间,一个是上周,一个是下周,点击的时候标题和表里的内容跟着切换,求大佬给个思路。

FineReport yzm276076 发布于 2022-3-9 11:30
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2022-8-6 14:30

sql写得太复杂了,也没有跟参数关联

修改意见:时间范围通过传参来控制 where 条件后面加上 and openeddate between '${bdate}' and '${edate}'

点击上周时:bdate 等于 datedelta($bdate,-7)

                     edate 等于 datedelta($edate,-7)

点击下周时:bdate 等于 datedelta($bdate,7)

                     edate 等于 datedelta($edate,7)

sql去掉 所有case when对周几的判断,直接返回字段openeddate,显示的时候再转成周几

image.png

最佳回答
0
linbodingLv6中级互助
发布于2022-3-9 11:34

用动态参数,点击后改变动态参数的值,然后数据集里做过滤,通过过滤,得到不同的数据

  • yzm276076 yzm276076(提问者) 不是很懂 大佬,例如我这个本周情况的SQL如下SELECT count( CASE WHEN openedDate >= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) ) AND openedDate <= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN \'本周计划\' ELSE NULL END ) AS 本周计划, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(openedDate,\'%Y-%m-%d\') >= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) ) AND DATE_FORMAT(openedDate,\'%Y-%m-%d\') <= ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN \'本周完成\' ELSE NULL END ) AS 本周完成, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + 0 DAY ) ) THEN \'周一\' ELSE NULL END ) AS 周一, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 1 DAY ) ) THEN \'周二\' ELSE NULL END ) AS 周二, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 2 DAY ) ) THEN \'周三\' ELSE NULL END ) AS 周三, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 3 DAY ) ) THEN \'周四\' ELSE NULL END ) AS 周四, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 4 DAY ) ) THEN \'周五\' ELSE NULL END ) AS 周五, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 5 DAY ) ) THEN \'周六\' ELSE NULL END ) AS 周六, count( CASE WHEN t.`status` = \'done\' AND DATE_FORMAT(assignedDate,\'%Y-%m-%d\') = ( SELECT date_sub( curdate( ), INTERVAL WEEKDAY( curdate( ) ) + - 6 DAY ) ) THEN \'周天\' ELSE NULL END ) AS 周天, a.realname FROM zt_task t LEFT JOIN zt_user a ON t.assignedTo = a.account WHERE t.`project` = \'37\' AND t.`deleted` = \'0\' AND t.`status` NOT IN ( \'closed\', \'cancel\' ) GROUP BY assignedTo
    2022-03-09 11:39 
最佳回答
0
13527520416Lv4中级互助
发布于2022-3-9 11:39(编辑于 2022-3-9 11:39)

image.png决策报表上面的tab快就是实现你这个功能的,Tab块- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

  • 4关注人数
  • 317浏览人数
  • 最后回答于:2022-8-6 14:30
    请选择关闭问题的原因
    确定 取消
    返回顶部