单元格元素动态参数注入能给数据集参数指定一个固定值吗?公式中如何调用数据集参数呢?

问题一:

图片.png

    模板数据集sql语句中设定了变量$TIME,

        当$TIME为 'Y'时,where语句限定查询时间范围为本年,获取本年数据;

        当$TIME为 'LY'时,where语句限定查询时间范围为上年,获取上年数据;

        当$TIME为NULL时,where语句限定查询时间范围为全部时间,获取累计数据。

现在想在看板展示三列数据:本年数据,累计数据,(本年数据-上年数据)/上年数据

请问动态参数注入能进行筛选获取本年数据和累计数据吗?我按照上图设置结果没有获取出本年数据。

问题二:

能不能在帆软公式中调用数据集参数获取不同$TIME对应的数据呢?

图片.png

我用上图中的语句也取不出数。

注:以上用到的模板数据集预览时给$TIME手动赋值都没报错。

求大佬佬指导

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

第一个可以

第二个不行

第一个可以也没必要设置第二个了

第一个有时获取不到值是因为左父格问题,当他的左父格中引用的同一个数据集并赋予了不同的参数时,这个单元格就会取不到数

最佳回答
0
檬茶茶Lv4初级互助
发布于2021-11-24 11:40

数据集是用这种方式写的吗?

${if(len(字段名) == 0,""," and 字段名 in ('"+字段名"')")}

  • yzm510467 yzm510467(提问者) 不是的,下面这样写的: WHERE 1=1 AND TO_DATE(BEGIN_DATE,\'YYYY-MM-DD HH24:MI:SS\') >= ( CASE WHEN \'${TIME}\'=\'Y\' THEN TRUNC(SYSDATE,\'YYYY\') WHEN \'${TIME}\'=\'LY\' THEN ADD_MONTHS(TRUNC(SYSDATE,\'YYYY\'),-12) ELSE TO_DATE(BEGIN_DATE,\'YYYY-MM-DD HH24:MI:SS\') END) AND TO_DATE(END_DATE,\'YYYY-MM-DD HH24:MI:SS\') < ( CASE WHEN \'${TIME}\'=\'Y\' THEN ADD_MONTHS(TRUNC(SYSDATE,\'YYYY\'),12) WHEN \'${TIME}\'=\'LY\' THEN TRUNC(SYSDATE,\'YYYY\') ELSE TO_DATE(END_DATE,\'YYYY-MM-DD HH24:MI:SS\')+1 END)
    2021-11-24 11:51 
  • yzm510467 yzm510467(提问者) 嗷,我试试你这种写法先
    2021-11-24 11:53 
  • 檬茶茶 檬茶茶 回复 yzm510467(提问者) 你这个是多个判断,所以嵌套多几个if判断就好了 ${if(len(字段名) == 0,\"\",if(。。。。))}
    2021-11-24 11:59 
  • yzm510467 yzm510467(提问者) 回复 檬茶茶 好的,我理解了,我再试试,谢谢大佬佬
    2021-11-24 12:24 
最佳回答
0
丶尛伟Lv6初级互助
发布于2021-11-24 11:41

第一个不用加双引号

第二个不用加双等号吧,数据汇总.select(cnt,$time="Y")

  • yzm510467 yzm510467(提问者) 你好呀大佬佬,我按上面的把代码改好了,也按你的方法把注入的参数双引号去除了,模板数据集手动输入没问题,但是渲染出来的页面还是全部时间的数据,数据汇总.select(cnt,$time=\"Y\")也没有整出数据。所有的修改都点保存了。请问还可能是哪里出了差错呢?
    2021-11-24 14:22 
  • 丶尛伟 丶尛伟 回复 yzm510467(提问者) 新建个模板,试一下 数据汇总.select(cnt,$time=\"Y\")能不能正常出数,然后清一下缓存,重新预览
    2021-11-24 14:31 
  • yzm510467 yzm510467(提问者) 回复 丶尛伟 我好像知道问题出在哪里了,好像是不能绑定左父格,绑定id列的话,子格的动态参数失效,会按照id列默认获取全部数据。 解决了第一个问题,第二个问题还是没有解决。因为可能又预留字time占用的情况,我把参数换了个名字,在新的模板里还是使用 数据汇总.select(cnt,$time=\\\"Y\\\")还是没结果。缓存我好像没有权限清理,决策面板里我只有查看目录的权限。 追问:除了select方法,还有其他公式方法调用数据集参数求我这个增长率指标吗?
    2021-11-24 15:15 
  • 丶尛伟 丶尛伟 回复 yzm510467(提问者) 或者你在SQL里,把去年的数据拼一列出来,数据集.select( )方法好像不支持参数的形式
    2021-11-24 15:36 
  • yzm510467 yzm510467(提问者) 回复 丶尛伟 好的谢谢您
    2021-11-24 15:42 
  • 4关注人数
  • 528浏览人数
  • 最后回答于:2022-5-20 23:32
    请选择关闭问题的原因
    确定 取消
    返回顶部