高级主题

可以递增日期参数并动态定义目标文件名。

递增日期参数

可以在报表的日期参数字段中提供表达式。

如果调度的报表包括日期参数,在为调度日期输入值后,不能更改日期值。每次调度的报表实例运行时,将使用相同的日期参数。如果每次运行需要更改日期参数,可以在调度程序的日期参数字段中输入表达式,用于计算每次运行报表作业的日期。

例如,如果为每个星期一运行的报表创建调度,以便捕获来自上一周的数据,则需要更新报表的日期参数以递增到上一周的第一天和最后一天。

使用所示语法输入以下函数之一,为报表按照调度的运行时计算合适的日期:

  • {$SYSDATE()$} - 当前日期,是运行 BI Publisher 的服务器的系统日期。

  • {$FIRST_DAY_OF_MONTH()$} - 当前月份的第一天

  • {$LAST_DAY_OF_MONTH()$} - 当前月份的最后一天

  • {$FIRST_DAY_OF_YEAR()$} - 当前年度的第一天

  • {$LAST_DAY_OF_YEAR()$} - 当前年度的最后一天

在调度程序处理报表作业之前,不会对参数值中的日期函数调用求值。

您还可以使用加号 (+) 和减号 (-) 输入表达式以增加或减去天数,如下所示:

  • {$SYSDATE()+1$}

  • {$SYSDATE()-7$}

对于本例,要从上一周捕获数据,每次调度运行时,在报表的日期参数字段中输入以下内容:

  • 自日期:{$SYSDATE()-7$}

  • 至日期:{$SYSDATE()-1$}

可以将日期函数设置为数据模型中的默认参数值。在这种情况下,用户每次从报表查看器查看报表时,根据为默认值提供的表达式计算日期参数。

使用日期表达式动态定义目标文件名

为 Web 文件夹或 FTP 目标输入远程文件名时,可以输入日期表达式以动态包含在文件名中。日期在运行时使用服务器时区设置。

下表说明了日期表达式。

表达式 说明

%y

显示的年份为四位数,示例:2011

%m

显示的月份为两位数:01-12(其中 01 = 一月)

%d

显示的日期为两位数:01-31

%H

显示的小时为两位数,采用 24 小时制:00-24

%M

显示的分钟为两位数:00 - 59

%S

显示的秒数为两位数:00 - 59

%l

显示的毫秒为三位数:000 - 999

示例

使用这些示例创建一个附加了日期的文件名,以及一个使用日期作为前缀并附加时间的文件名。

要创建附加了日期、月份和年份的文件名,例如:

myfile_01_11_2010.pdf

请输入以下内容:

myfile_%d_%m_%y.pdf

要创建前缀为日期、月份和年份并且附加和小时和分钟的文件名,例如:

01_01_2010_myfile_22_57.pdf

请输入以下内容:

%d_%m_%y_myfile_%H_%M.pdf

如果文件名包括未定义的表达式,例如 my_file_%a%b%c.pdf,则将以名称 my_file_%a%b%c.pdf 创建文件。