报表开发工具FineReport决策系统教程之【3】定时调度
### 报表开发工具FineReport决策系统教程之【3】定时调度 #### 一、表达式设定 在报表开发工具FineReport中,定时调度是一项重要的功能,它可以帮助用户按照预定的时间周期自动执行某些任务,例如生成报表、发送邮件等。在7.0.4版本中,为了更好地支持复杂的定时需求,FineReport引入了定时表达式的概念,通过cronExpression来进行设定。 ##### 1.1 问题描述 在早期版本中,自定义重复执行功能已经不能完全满足复杂的时间组合需求。为了提供更灵活、便捷的定时任务设置方式,新版中引入了基于cronExpression的表达式设定功能,使得用户可以方便地定义任务的触发时间点。 ##### 1.2 定时表达式 定时表达式是一种特定格式的字符串,用于定义任务的执行频率和具体时间。在FineReport中,可以通过手动输入或者选择预置表达式的方式进行设置。 **预置表达式示例:** - **每月最后一天19点50分**:`0 50 19 L * ?` - **每月最后一个工作日19点50分**:`0 50 19 LW * ?` - **每月第4个周五19点50分**:`0 50 19 ? * 6#4` - **2013年第4季度每天19点50分**:`0 50 19 * 10-12 ? 2013` - **每个工作日早上9点和晚上6点**:`0 9,18 ? * MON-FRI` 这些表达式可以覆盖多种常见的定时任务需求,并且提供了极大的灵活性。 ##### 1.3 cronExpression详解 cronExpression是一种用于定义定时任务执行规则的表达式格式。它由六个或七个字段组成,分别是秒、分、小时、日、月、周几(星期几)以及可选的年份,各字段之间用空格分隔。 - **秒** (0-59) - **分** (0-59) - **小时** (0-23) - **日** (1-31) - **月** (1-12 或 JAN-DEC) - **周几** (0-6 或 SUN-SAT,0 表示星期天) - **年** (可选) **特殊符号含义:** - `*`:表示任何可能的值。 - `?`:用于不明确的日或周几。 - `-`:表示值的范围。 - `,`:表示多个值。 - `/`:表示增量,例如`*/15`表示每隔15分钟。 - `L`:表示“最后”,用于日或周几,如`L`表示当月最后一天。 - `W`:表示最近的工作日。 - `LW`:表示当月最后一个工作日。 - `#`:用于指定具体的星期几。 #### 二、定时任务简单示例之日报 在实际应用中,日报功能是非常常见的需求之一,例如在每天的某个时间点自动生成前一天的数据报表。 ##### 2.1 模板准备 以`CircularReference.cpt`模板为例,该模板中包含一个日期字段,用于查询每天的数据信息。假设我们需要生成2011-06-02这一天的数据报告,可以使用以下cronExpression: - **每日凌晨0点**:`0 0 0 ? * *` 这表示在每天凌晨0点触发任务,生成前一天的数据报告。 **步骤如下:** 1. 打开模板`%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\CircularReference.cpt`。 2. 在定时任务设置中,选择手动输入或预置表达式方式设定cronExpression。 3. 设置好后,保存模板并部署到服务器上。 通过以上设置,FineReport将自动在每天的凌晨0点执行任务,生成前一天的数据报告,并根据需要保存为PDF、Word或其他格式。 通过学习和掌握FineReport的定时调度功能,用户可以根据自己的业务需求定制各种定时任务,提高工作效率并减少人工干预的需求。
剩余39页未读,继续阅读
- 粉丝: 5
- 资源: 172
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助