报表获取不到参数模板上的参数值
报表获取不到参数模板上的时间,参数模板的时间是数据集数据。
报表上参数是 prodTimeStart、prodTimeEnd,参数模板上的变量名和报表参数名一致,但是在报表上获取不到时间,导致数据集也查询不到数据。
按照文档上来写的。
"报表获取不到参数模板上的时间,参数模板的时间是数据集数据。 报表上参数是 prodTimeStart、prodTimeEnd,参数模板上的变量名和报表参数名一致,但是在报表上获取不到时间,导致 .."
报表获取不到参数模板上的时间,参数模板的时间是数据集数据。
报表上参数是 prodTimeStart、prodTimeEnd,参数模板上的变量名和报表参数名一致,但是在报表上获取不到时间,导致数据集也查询不到数据。
按照文档上来写的。
第一:这里为什么要用日期时间组?要传个数组?
第二,也是最重要的一点,你这个参数类型是动态参数,动态参数 是执行那个值表达式后生成的结果赋值给这个参数,不会接收外部或者参数表单传过来的参数,只有普通参数才可以。
所一般使用时,先增加个普通参数,然后参数模版给这个普通参数传值,在你的报表中可能需要动态参数根据这个普通参数值生成新的参数值,那么增加个动态参数,那个值表达式那块可以写润乾表达式,比如普通参数是 arg1,这里可以写 if(arg1==null,now(),arg1),这样报表里使用这个动态参数时,如果 arg1 参数为空,则取当前系统时间做为这个参数值
1、因为是需要查询区间数据,不需要传数组,可以理解为两个查询条件,只不过都是 date 类型
2、为什么是动态参数,需要打开报表查询前两天到前一天的数据,而且需要人工可选择不同的时间区间查询对应的数据,按照图片所示,参数模板已经渲染出时间数据了,为什么数据集里面获取不到数据呢
日期组这个,你参数这里定义的两个,开始时间和结束时间,通过两个参数控制的时间段,所以类型改成单值的 日期或者日期时间,具体看下你数据库里字段类型以及对应的值是什么。
选择日期后,点击查询,下边结果报表单元格里能展示出对应的参数值了? 那如果确保值传过来了,那看下数据集那块 where 怎么写的,然后确保值传入的是否正确,排查方法:
一,点查询后,看下控制台日志,里边会输出 sql 信息,然后 sql 下边会输出传入对应的参数值,看下参数值是否是自己想要传入的。
二:确认下数据库中的数据是什么格式的,比如是日期,还是日期时间。
三:可以先把条件固定写好,将这个 sql 在数据库段执行下,看看是否出数,然后将这个 sql 放到报表数据集里,直接预览下,看看数据是否正确,然后再逐个替换 where 里的条件,将固定值改成?,然后通过参数传入,看看哪个参数引起的。
四:不行的话,可以都转成字符串方式,where 里 通过函数将字段类型改成字符串,然后报表这块传入字符串试下。确保类型统一