决策报表时间控件传参问题

Hi 你好,

我最近在做Fine Report产品测试中,在测试决策报表的时候,发现一个时间控件传递参数的问题。

测试环境:

操作系统:Windows 10企业版 20H2(19042.928)

Fine Report版本:10.0.19 stable 2021-09-30

数据源数据库为MySQL

现象:

同样的界面,选择当前月份2021-10的时候,后台传递参数为2021-10。选择2021-09的时候,后台传递参数为2021-09-01。

使用带参数的模板数据集,如下:

SELECT CST_DEPT_DESCR1 AS "部门",        EMPLID AS "工号",        NAME AS "姓名",        CST_JOINEDCO_DATE AS "入职",         TERMINATION_DT AS "离职" FROM tb WHERE CST_JOINEDCO_DATE < ${"STR_TO_DATE('"+queryMonth+"', '%Y-%m-%d')"} AND (TERMINATION_DT is NULL OR TERMINATION_DT > ${"STR_TO_DATE('"+queryMonth+"', '%Y-%m-%d')"} )

参数设置如图:

image.png

后台query日志如下:

2021-10-22 14:33:59 正常:14:33:59 http-nio-8075-exec-9 INFO [standard] [SQL]SQL: SELECT CST_DEPT_DESCR1 AS "部门",        EMPLID AS "工号",        NAME AS "姓名",        CST_JOINEDCO_DATE AS "入职",         TERMINATION_DT AS "离职" FROM tb WHERE CST_JOINEDCO_DATE < STR_TO_DATE('2021-10', '%Y-%m-%d') AND (TERMINATION_DT is NULL OR TERMINATION_DT > STR_TO_DATE('2021-10', '%Y-%m-%d') ) 2021-10-22 14:33:59 正常:14:33:59 http-nio-8075-exec-9 INFO [standard] sql time: 131 ms! 2021-10-22 14:33:59 警告:14:33:59 http-nio-8075-exec-7 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 警告:14:34:05 http-nio-8075-exec-10 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-10 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-10 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 警告:14:34:05 http-nio-8075-exec-1 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 警告:14:34:05 http-nio-8075-exec-8 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-8 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-8 INFO [standard] Start to execute form session 2a5c5bf9-f5a3-49b3-85ca-e2099842b76e. 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-8 INFO [standard] Start to execute form session 2a5c5bf9-f5a3-49b3-85ca-e2099842b76e. 2021-10-22 14:34:05 正常:14:34:05 http-nio-8075-exec-8 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:05 警告:14:34:05 http-nio-8075-exec-5 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:06 警告:14:34:06 http-nio-8075-exec-4 WARN [standard] JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:06 正常:14:34:06 http-nio-8075-exec-4 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:06 正常:14:34:06 http-nio-8075-exec-4 INFO [standard] can't find username from request: JWT strings must contain exactly 2 period characters. Found: 0 2021-10-22 14:34:06 正常:14:34:06 http-nio-8075-exec-4 INFO [standard] [SQL]SQL: SELECT CST_DEPT_DESCR1 AS "部门",        EMPLID AS "工号",        NAME AS "姓名",        CST_JOINEDCO_DATE AS "入职",         TERMINATION_DT AS "离职" FROM tb WHERE CST_JOINEDCO_DATE < STR_TO_DATE('2021-09-01', '%Y-%m-%d') AND (TERMINATION_DT is NULL OR TERMINATION_DT > STR_TO_DATE('2021-09-01', '%Y-%m-%d') )

谢谢

FineReport 用户TCPhi2901671 发布于 2021-10-22 14:36 (编辑于 2021-10-22 14:52)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
用户TCPhi2901671Lv2见习互助
发布于2021-10-22 17:45

在帆软官方服务人员的协作下,查了很多可能出问题的地方,都没问题。最后无奈重启报表设计器,重新将创建决策报表的步骤走一遍,问题消失。怀疑是环境出bug导致的。所以当你遇到百思不得其解的问题的时候,可以尝试环境重启,流程再走一遭,说不定会有奇效。这里不得不赞一下帆软服务的耐心细致。

最佳回答
0
我乃牛马小兵Lv5初级互助
发布于2021-10-22 14:39(编辑于 2021-10-22 14:40)

对不上

你sql的日期格式为%Y-%m-%d  年月日

日期控件为 yyyy-MM                 年月

  • 用户TCPhi2901671 用户TCPhi2901671(提问者) 感谢你的回答。我的理解,日期控件设定格式只是显示格式,便于用户选择月份。实际作为日期返回的话,应该是返回到年月日。作为字符串返回才会是年月。我自己的测试也证明了我之前的猜想。这个比较奇怪的是,我日期控件选择当前月份10月的话,后台传递的时候是传递的2021-10。选择9月的话,传递的是2021-09-01。
    2021-10-22 14:45 
  • 用户TCPhi2901671 用户TCPhi2901671(提问者) 导致选择10月的时候,没法查询到数据,就是阁下提到的格式不匹配导致查询不到。9月的时候,又是正常的,能够匹配得上。这个比较奇怪。 同样的方式,在普通报表能正常工作。
    2021-10-22 14:47 
  • 1关注人数
  • 435浏览人数
  • 最后回答于:2021-10-22 17:45
    请选择关闭问题的原因
    确定 取消
    返回顶部