帆软日期格式转换_Web报表工具FineReport定时器使用说明

本书介绍了报表工具FineReportV6.5定时器功能的相关参数及配置说明,本书最后详细列举了几个使用定时器功能的模板制作示例。

6.5定时器配置简要说明………………………………………………2

6.5定时器参数专题……………………………………………………10

6.5定时器填报…………………………………………………………15

6.5定时器日报专题……………………………………………………19

6.5定时器月报专题……………………………………………………24

6.5定时器年报专题……………………………………………………29

6.5定时器邮件专题……………………………………………………33

6.5配置简要说明

在制作报表中,您可能需要面临定期产生,定期发布等问题,FineReport提供了定时器这个功能,对于6.5版本,在6.2的基础上进行了扩充 ,可在页面直接进行操作,下面就简单介绍一下。

1.配置环境

此环境是自在tomcat环境中配置的,因此需要把FineReport6.5安装目录下的WebReport文件拷贝到%Tomcat_HOME%/webapps/下

1.1整合web.xml

打开%Tomcat_HOME%/webapps/WebReport/WEB-INF目录下的web.xml,将

ScheduleServer

com.fr.schedule.ScheduleServlet

1

ScheduleServer

/ScheduleServer

com.fr.schedule.ScheduleInitializerListener

整合到现有的web.xml中,如下图

1.2拷贝数据库

在WebReport\WEB-INF\resources\data下面新建文件夹schedule;将hsql数据库放置到该文件夹里面,如图所示

1.3替换jar包

将fr-server-6.5.jar和fr-third-6.5.jar替换WEB-INF\lib下原来的jar包,如下图所示

1.4查看

2.添加定时任务

在Schedule页面上可直接添加定时报表,

2.1添加定时报表

点击页面最下面的添加定时报表,如图所示

在此页面填入报表的名字,并选择报表路径,选择是否填报,如下图所示

注意:如果非火狐浏览器,下面的确定按钮和取消按钮将被遮住,需要滚动鼠标

点击确定按钮,在schedule页面就出现该模板,如图

2.2添加定时任务

在schedule界面中,点击相应的定时报表栏中添加定时任务按钮,如图

点击后出现如下界面

点击添加定时任务按钮,进入定时任务的基本设置页面,在页面中必须填写任务名称,任务描述可有可无,如图

点击下一步,进入第二步,时间表设置,可对时区选择,开始的时间可选择立即执行,也可自定义开始时间,循环方式有三种不循环,即定时器只执行一次,

点击下一步,进入第三步,参数设置,可添加参数,可删除参数,可根据模板自动生成参数

点击下一步,进入第四步,导出设置,填写文件显示名,并选择管理目录,导出文件类型可选择cpt,excel,pdf,word四种格式,并选择是否邮件通知

如果选择邮件通知,则会出现如下图所示页面,必须要填入发送的地址,其他可不填

点击完成,生成定时任务,加入定时任务列表,如下图所示

3.浏览

定时任务生成的新报表都放在%Tomcat_Home%\webapps\WebReport\WEB-INF\schedule\taskName\actionName文件夹下面。其中taskName是根据上面例子添加任务中的任务名称:日报定时任务。actionName是根据定时器的日期,比如上述例子就是2010-03-31。actionName文件夹下将产生根据定时任务生成的定时文件的时间命名,如上述例子,根据定时任务,在11:52的时候生成新的报表和excel,所以该文件夹的命名为1152,在该文件夹下根据上面例子生成三个文test_20100331115225265_841.cpt;test_20100331115225281_569.xml和info.xml

点击定时器任务所在的目录,我们能在左边窗口看到添加的定时报表以及由定时任务生成的文件,生成的文件名就是在上面第四步中的导出文件名,如下图所示

6.5定时器参数专题

在FineReport定时器中,参数尤为重要,特别是时间参数,在涉及到时间的定时任务中都需要用到它的公式。下面就详细介绍一下定时器的参数。

1.时间参数

定时器中主要用到的时间参数如下:

日报

当前日期的前一天:Format(today()-1,”yyyy-MM-dd”)

周报

当前日期的上一周的第一天:

Format(dateInWeek((today()-7),1),”yyyy-MM-dd”)

当前日期的上一周的最后一天:

Format(dateInWeek((today()-7),7),"yyyy-MM-dd")

当前日期的上上周的第一天:

Format(dateInWeek(dateDelta(dateInWeek((today()-7),1),-7),1),"yyyy-MM-dd")

当前日期的上上周的最后一天:

Format(dateInWeek(dateDelta(dateInWeek((today()-7),7),-7),7),"yyyy-MM-dd")

月报

当前日期的上一个月的第一天:

Format(dateInMonth(monthDelta(today(),-1),1),"yyyy-MM-dd")

当前日期的上一个月的最后一天:

Format(dateInMonth(monthDelta(today(),-1),daysOfMonth(monthDelta(today(),-1))),"yyyy-MM-dd")

当前日期的上上月的第一天:

Format(dateInMonth(monthDelta(dateInMonth(monthDelta(today(),-1),1),-1),1),"yyyy-MM-dd")

当前日期的上上月的最后一天:

Format(dateInMonth(monthDelta(dateInMonth(monthDelta(today(),-1),daysOfMonth(monthDelta(today(),-1))),-1),daysOfMonth(monthDelta(dateInMonth(monthDelta(today(),-1),daysOfMonth(monthDelta(today(),-1))),-1))),"yyyy-MM-dd")

年报

当前日期的上一年的第一天:

Format(dateInYear(yearDelta(today(),-1),1),"yyyy-MM-dd")

当前日期的上一年的最后一天

Format(dateInYear(yearDelta(today(),-1),daysOfYear(yearDelta(today(),-1))),"yyyy-MM-dd")

2.其他类型参数值

报表当中除了时间参数之外,为了节省报表设计的工作量和减少报表文件的总量,我们往往要在报表里面加入其他的参数。例如主机名,指标名等等。

首先我们在报表里面定义这些参数的时候,建议使用中文的参数名称,这样在定时生成之后,在报表查看时上方的参数名称也就是直接读的在报表

当中定义的参数名称。中文对于最终用户来说比较容易理解。

在报表当中有这些参数的时候,定时生成的时候,我们需要设定参数包含哪些具体的值。比如exchange邮件服务器的性能报表,在哪几台机器上

有exchange,exchange又包含哪些参数指标。这些我们都需要通过定义全局数据源得到。

也就是说,我们先定义好一个全局数据源,该数据源返回的结果是exchange服务器所在的所有主机。

然后在设置定时生成的时候,主机这个参数的参数类型,设置为“列”。选择我们已经定义好的全局数据源,以及该数据源中代表主机的列即可。这样在这个数据源内返回了多少结果,则报表在生成的时候,会每一个值生成一个报表。有一种特殊的情况,也许要通过多定义一些全局数据源来实现。例如我们的报表当中,有一部分是windows主机的性能报表。但是windows的主机又分 为OA和CallCenter。如果分开来设计报表的话,是一种重复劳动。

解决的办法,就是通过定义不同的全局数据源。还是以主机这个参数举例。在全局数据源里面定义两个不同的数据源分别返回的结果是OA的主机和CallCenter的主机。 然后我们只要设计一张Windows主机的报表即可。在定义定时任务时,可以定义两个不同的action,只是主机这个参数定义的时候,选择的数据源不同。选择OA的主机,那么生成的报表就是OA的性能报表,选择CallCenter的主机,生成的即是CallCenter的报表。 再举一个例子。各个业务系统的报表,也可以通过这个方法,大大减少报表的数量。例如业务系统的日报,我们只需要设计一张报表。在设置定时生成的时候,业务系统这个参数,可以分别设置固定的值。即十个不同的action。

3.简单例子示例

3.1制作带参的模板

新建内置数据集e1,如图所示

添加参数p1,控件类型为日期类型,参数界面设置如下

表样设计如下图所示,并在B4单元格中添加过滤条件:date=$p1

3.2添加定时报表

在定时器管理界面点击按钮,添加定时报表,如下图所示

3.3添加定时任务

点击定时器界面相应模板的添加定时任务,并点击

第一步基本设置,如图

点击下一步进入时间设置,选择立即执行,循环方式选择不循环,如图

点击下一步,进入参数设置,直接点击界面上的

按钮,自动生成报表中所带的参数,并双击参数的值,对参数值进行编辑,参数类型选择公式,将参数值设为:Format(today()-1,"yyyy-MM-dd"),该公式表示当前日期的前一天,如图所示

点击下一步,进入导出设置,填写文件显示名,并选中管理目录和导出文件类型,如图所示

点击完成,生成定时任务

3.4生成文件预览

刷新管理界面,发现生成定时文件参数测试1.cpt

点击该生成文件,预览,如图

6.5定时器填报

定时器的另一个重要功能就是可以用来定时填报,通过定时功能实现自动填写功能,而不必一个一个的手动输入,下面就通过一个例子介绍一下6.5版本定时器填报的用法

1.制作简单填报模板

连接数据库scheduleDemo,新建模板,并添加数据库查询ds1:SELECT year(countdate) as year,month(countdate) as month,empid,num FROM empdetailswhere year(countdate) = ${year}and month(countdate)= ${month},并将year参数的默认值设为2010,month参数的默认值设为4。报表样式设计如图所示,并双击A3单元格,选择高级里面的自定义显示值:=CONCATENATE($$$,"年",month,"月"),将C3单元格设置为:汇总|求和

报表填报属性设置,如图所示,将empdetails表中的值插入到表empcount中去

报表制作完成之后将模板存储到reportlets目录下

2.添加定时报表

在定时器管理界面点击

按钮,添加定时报表,并选中是否填报,如下图所示

3.添加定时任务

点击定时器界面相应模板的添加定时任务,并点击

第一步基本设置,如图

点击下一步进入时间设置,选择立即执行,循环方式选择不循环,如图

点击下一步进入参数设置,点击

,并双击参数month和year进行编辑,将参数类型都选择公式,month的参数值为:month(today()),表示当前的月份,year的参数值为:year(today()),表示当前的年份

点击下一步,进入导出设置,填写文件显示名,并选中管理目录和导出文件类型,如图所示

4.查看效果

6.5定时器的填报功能不能在定时器管理界面显示,效果只能在数据库中查看。打开scheduleDemo数据库的empcount表,发现通过定时任务,数据已经自动填入表中了。如图所示

6.5定时器日报专题

在finereport定时器中,涉及到几个典型问题,日报,月报,年报。这三种典型报表具体如何通过定时器生成定时任务呢?本专题专门介绍定时器的日报问题。日报顾名思义就是在每日的定点生成关于每天的统计。常见使用主要是人事考勤,订单管理之类的,下面就做一个人事考勤的简单例子介绍一下。

1.制作模板

新建内置数据集E1,如图所示

添加参数统计时间,控件类型为日期类型,参数界面设置如下

表样设计如下图所示,并在A6单元格中添加过滤:统计时间=$统计时间

报表制作完成之后将模板存储到reportlets目录下

2.添加定时报表

在定时器管理界面点击

按钮,添加定时报表,如下图所示

3.添加定时任务

点击定时器界面相应模板的添加定时任务,并点击

第一步基本设置,如图

点击下一步进入时间设置,开始时间选择4月1日,循环方式选择自定义循环,结束时间选择4月30日,时间选择每天的10点50分执行,月选择四月,这样4月1号到4月30号每天的11点01分该定时任务都会执行

点击下一步,进入参数设置,直接点击界面上的

按钮,自动生成报表中所带的参数,并双击参数的值,对参数值进行编辑,参数类型选择公式,将参数值设为:Format(today()-1,"yyyy-MM-dd"),该公式表示当前日期的前一天,这样该定时任务就在4月份的每一天的11点01分生成当前日期的前一天的考勤统计,如图所示

点击下一步,进入导出设置,填写文件显示名,并选中管理目录和导出文件类型,如图所示

4.效果预览

刷新管理界面,发现在设置的11点01分生成定时文件:日报专题文件导出.cpt

点击该生成的定时文件,即在11点01分统计的当前日期的前一天的考情统计,预览

6.5定时器月报专题

在定时器的几个典型案例中,月报经常应用于业月份统计中,下面通过一个典型的汽车年度销售统计来介绍如何利用FineReport6.5定时器自动实现月报统计。

1.修改模板

打开模板%WebReport\WEB-INF\reportlets\demo\chart\car3.cpt,并删除图表,

页面修改后如图所示

将三个参数删掉两个,并添加一个新的参数$month,如图所示

在C5单元格中删除原来的过滤条件,添加新的过滤条件

将修改后的报表另存到到reportlets目录下

2.添加定时报表

在定时器管理界面点击按钮,添加定时报表,如下图所示

3.添加定时任务

点击定时器界面相应模板的添加定时任务,并点击

第一步基本设置,如图

点击下一步进入时间设置,开始时间选择2007年1月1日,循环方式选择自定义循环,结束时间选择2010年4月16日,时间选择17点15分执行,天选择每月的31日,月选择所有月,这样从07年1月到10年4月每月的31日的17点15分该定时任务都会执行

点击下一步,进入参数设置,直接点击界面上的按钮,自动生成报表中所带的参数,并双击参数的值,对参数值进行编辑,两个参数的类型都选择公式,将Year的参数值设为:year(today())-2,表示当前年份的上上年,month的参数值设为:month(today()),该公式表示每月的15日的17点15分,生成上上年的当前月份的月报,如图所示

点击下一步,进入导出设置,填写文件显示名,并选中管理目录和导出文件类型,如图所示

点击完成,生成定时任务

4.生成文件预览

刷新管理界面,发现生成定时文件:月报导出.cpt

点击该生成文件,预览,生成了08年4月份的统计报表,如图

6.5定时器年报专题

在定时器的几个典型案例中,年报经常应用于和年度统计中,下面通过一个典型的汽车年度销售统计来介绍如何利用FineReport6.5定时器来自动实现年报统计。

月报

5.修改模板

打开月报专题.cpt模板,样式设计稍作修改,如图

删掉month参数,如图所示

在C5单元格中删除原来的过滤条件。将修改后的报表另存到到reportlets目录下

6.添加定时报表

在定时器管理界面点击

按钮,添加定时报表,如下图所示

7.添加定时任务

点击定时器界面相应模板的添加定时任务,并点击

第一步基本设置,如图

点击下一步进入时间设置,开始时间选择2007年1月1日,循环方式选择自定义循环,结束时间选择2010年4月30日,时间选择12点00分执行,天选择每月的16日,月选择四月,这样从07年1月到10年4月每年的4月16日的12点00分该定时任务都会执行

点击下一步,进入参数设置,直接点击界面上的按钮,自动生成报表中所带的参数,并双击参数的值,对参数值进行编辑,Year参数的类型都选择公式,将Year的参数值设为:year(today())-2,表示当前年份的上上年,该公式表示每年的4月16日12点00分,生成上上年的年报,如图所示

点击下一步,进入导出设置,填写文件显示名,并选中管理目录和导出文件类型,如图所示

点击完成,生成定时任务

8.生成文件预览

刷新管理界面,发现在设置的4月16日的12:00生成定时文件:年报导出.cpt

点击该生成文件,预览,生成了08年的年报统计报表,如图

6.5定时器邮件专题

在FineReport6.5版本中,定时器比6.2版本中多了邮件通知的功能,该功能使得定时器的定时任务生成定时文件时能够及时通知用户,而用也可通过是否收到邮件判断定时器的定时任务是否正常工作。下面就详细介绍一下定时器的邮件设置。

1.服务器配置

打开报表设计器,登录环境设置为tomcat所在目录(因为定时器环境是集成在tomcat下),打开菜单栏服务器|服务器配置,选择邮件栏目,依次填入邮件服务器地址(SMTP),如:smtp.163.com smtp.gmail.com等。邮件用户名,密码,以及发件人地址(发件人相应邮箱)。如下图所示

2.定时器邮件配置

2.2添加定时报表

点击左边目录定时器例子,在右边窗口中点击按钮添加定时报表,进入添加定时报表界面。选择需要添加的报表test.cpt,选完之后点击确定按钮。

2.3添加定时任务

2.3.1在报表/文件列表窗口,在对于的定时报表栏中点击添加定时任务,如下图

2.3.2基本设置

进入任务编辑第一步,基本测试,填写任务名称分报测试,任务描述可省略,详见图示

2.3.3时间表

时间表设置开始选择立即执行,循环方式选择简单循环,运行的执行次数选择3次,频率选择每分钟

2.3.4参数

该模板没有参数,所以直接点击下一步

2.3.5导出

在文件显示名中填写文件导出的名字,并对文件进行描述,选择管理的目录:定时器的例子,导出文件类型选择cpt和excel(邮件中cpt文件不会导出)

选中是否邮件通知,填写需要发送的邮箱地址,并填写主题和内容

这样就完成了一个定时任务

3.预览

刷新定时器管理界面,每分钟生成一个cpt和一个excel文件,共生成了六个定时文件,如下图所示

根据设置的邮件通知,打开发送的126邮箱,看到三个从jerny1118@gmail.com邮箱发送的邮件通知,如图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值