已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FineReport-报表技术领跑者Web报表工具FineReport定时器使用说明本书介绍了报表工具FineReportV6.5定时器功能的相关参数及配置说明,本书最后详细列举了几个使用定时器功能的模板制作示例。6.5定时器配置简要说明 26.5定时器参数专题106.5定时器填报156.5定时器日报专题196.5定时器月报专题246.5定时器年报专题296.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 拷贝数据库在WebReportWEB-INFresourcesdata下面新建文件夹schedule;将hsql数据库放置到该文件夹里面,如图所示1.3 替换jar包将fr-server-6.5.jar和fr-third-6.5.jar替换WEB-INFlib下原来的jar包,如下图所示1.4 查看启动tomcat服务器,打开链接http:/localhost:8088/WebReport/ScheduleServer?action=dashboard,8088是tomcat服务器的端口,可改变。这样就可看到定时器管理界面,如图所示2. 添加定时任务在Schedule页面上可直接添加定时报表,2.1 添加定时报表点击页面最下面的添加定时报表,如图所示在此页面填入报表的名字,并选择报表路径,选择是否填报,如下图所示注意:如果非火狐浏览器,下面的确定按钮和取消按钮将被遮住,需要滚动鼠标点击确定按钮,在schedule页面就出现该模板,如图2.2 添加定时任务在schedule界面中,点击相应的定时报表栏中添加定时任务按钮,如图点击后出现如下界面点击添加定时任务按钮,进入定时任务的基本设置页面,在页面中必须填写任务名称,任务描述可有可无,如图点击下一步,进入第二步,时间表设置,可对时区选择,开始的时间可选择立即执行,也可自定义开始时间,循环方式有三种不循环,即定时器只执行一次,点击下一步,进入第三步,参数设置,可添加参数,可删除参数,可根据模板自动生成参数点击下一步,进入第四步,导出设置,填写文件显示名,并选择管理目录,导出文件类型可选择cpt,excel,pdf,word四种格式,并选择是否邮件通知如果选择邮件通知,则会出现如下图所示页面,必须要填入发送的地址,其他可不填点击完成,生成定时任务,加入定时任务列表,如下图所示3. 浏览定时任务生成的新报表都放在%Tomcat_Home%webappsWebReportWEB-INFscheduletaskNameactionName文件夹下面。其中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=$p13.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 empdetails where 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. 修改模板打开模板%WebReportWEB-INFreportletsdemochartcar3.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所在目录(因为定时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论