定时器、定时任务、定时生成月报与年报,月,年,定时报表
1. 问题描述
每月在固定某个时间段统计各个分公司的销售业绩,还可在年底统计各个分公司的销售业绩,这些数据可以以pdf、word、cpt、xls等格式保存在自己设定的目录当中,进而备份数据,这样就需要对一个模板设置多个定时器任务。
2. 实现原理
首先做一个可根据年份与月份查询的报表统计各分公司的销售业绩,然后定义两个定时器,一个统计每月定时调用报表,另一个在一个汇总各分公司的销售额,并保存至数据库中。
3. 模板示例
3.1 报表制作
首先制作一张报表用于统计数据,可以通过年份与月份查询订单金额跨年累计信息,而且设置当月份为空时,查询年内所有月份的数据,如下图:
可打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\Accumulative_2.cpt,设置年报表和月报表。
3.2 参数设置
给报表添加两个参数year和month,默认值分别用公式来表示,获取当前年与当期月,year的默认值是=year(today()),month的默认值是=month(today()),并在参数页面也把控件附上默认值,如下图所示:
3.3 过滤设置
双击单元格A3进行过滤设置,然后根据如下图示添加过滤条件,当月份为空时查询所在年的所有月份数据使用公式if(len($month)==0,nofilter,$month)。
到此模板制作完毕,下面来添加定时任务。
4. 定时任务编辑
4.1 目录树中添加模板
在浏览器中输入http://localhost:8080/WebReport/ReportServer?op=fs用户名:system,密码:123456,打开FR报表平台界面,选择平台管理>报表管理,选择希望添加模板的目录如FRTest,点击添加模板,输入相应信息点击确定,点击参数设置处的刷新按钮
可以刷新出所有参数: 4.2 给模板添加月报定时任务
点击添加的模板右边的闹钟按钮,点击添加定时任务如下操作:
带*的不能为空,输入任务名称如下:
则在执行定时器时,在定时目录%FR_HOME%\WebReport\WEB-INF\schedule下新建“定时月报”文件夹。
月报表可选择每个月的1号0点0分执行任务,把上个月数据进行汇总备份了。
点击刷新按钮获取参数,我们设置的是每个月的1号进行汇总,统计上个月的数据,所以参数值使用公式求出当前年与上一月份。
参数year的值为=year(today());
参数month的值为=month(today())-1;
文件显示名称则是在产品演示中选择生成文件显示在的虚拟目录下,导出模板所对应的文件名字,如“月报汇总.xls”,是否邮件通知可查看定时任务附送邮件的使用。 点击完成定时月报任务就设置成功了。
三角任务状态是处于运行中状态,到每个月的1号0点0分就会将上个月信息自动备份到指定文件夹下面了。
4.3 给模板添加年报定时任务
任务名称中输入定时年报,在执行定时器时生成对应文件夹。
年报表可选择第12月的31号12点0分执行任务,把这一年的数据进行汇总备份。
点击刷新按钮获取参数,我们设置的是12月的31号进行汇总,统计一年的数据,所以参数的值使用公式获取当前年,月份为空,在模板设计那边当月份为空时选择所有月份数据。
参数year的值为=year(today());
可参考给模板添加月报定时任务里面导出设置。
点击完成定时年报任务就设置成功了,一个模板设置多定时任务就完成了,如下图执行效果:
4.4 预览定时效果
查看报表工程下面%FR_HOME%\WebReport\WEB-INF\schedule\生成的备份数据,其中执行多次生成的数据是分别根据日期、时间生成文件夹,而保存在里面的;还可以在产品演示目录下查看生成的数据。
返回顶部