首页 问答 报表使用默认参数自动提交
问题详情

使用场景
数据分析系统中的报表可以默认查询昨天的数据,当用户选择日期再按照选择的日期查询数据吗?

回答

实现方式
硕迪报表对应此种需求提供两种实现方式
1、 在参数模板给参数利用表达式赋值,然后通过js自动调用查询按钮的点击事件。
第一步:参数模板如下:默认值表达式为=string(elapse(now(), -1),"yyyy-MM-dd")98919d18193b7de1cb87eaa360edcb0

注意:日期类型参数一般使用下拉日历,下拉日历的设置一定要和表达式返回值一致,例如使用“年月日”就如上图,如使用“年月日时分秒” 就直接使用elapse(now(), -1)即可。
331aa7e3af6d9e3d25ce67f3ad0a8c8

第二步:复制showReport.jsp并修改,通过复制修改的jsp调用需要自动查询的报表。
例如复制改名为showReport2.jsp
在script标签中加入调用查询按钮点击事件的代码_submit( form1 )a1a99e4278ea4b123c508acc2826aa0

第三步:删除rerport:html标签,避免先默认执行一次报表浪费效率。

2、 在设计报表的时候利用动态参数判断传入的普通参数值,如果普通参数值为空,则使用当前日期计算动态参数值,在报表中的数据集或者单元格使用动态参数值。
第一步:新建普通参数,值表达式为空。
第二步:新建动态参数,值表达式为判断普通参数是否为空,如果空使用计算的日期,如果不为空使用普通参数的值。if(beginDate == null ,elapse(now(), -1),beginDate)13009079921a435b4efedee51f44e2e

第三步,参数模板显示的也需要是报表动态参数同样的值,需要在参数模板也设置一下表达式,和第一种实现方式的设置相同。
总结
两种方式都可以满足用户需求,第一种需要修改jsp中的js,第二种不需要修改jsp;第二种的方式需要多增加对应的动态参数,并且想要参数模板的参数值显示和报表数据一致需要动态参数和参数模板的默认值都进行设置。两个方式各有特长,根据自己的需求选择使用。

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/206.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站