1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
10.0 | - |
10.0.17 | 普通报表、聚合报表支持使用跨 sheet 公式进行公式判断 |
1.2 功能简介
本文将详细介绍设置定时调度任务过程中,可以使用的公式及其用法。
注1:定时调度任务中,无法触发报表的 JS 事件。
注2:定时调度任务中,「调度周期-执行条件-公式判断」处支持将单元格作为参数传给其他公式使用;除此之外的其他地方,都不支持将单元格作为参数传给其他公式使用。
注3:定时调度任务中,公式的长度过长、公式解析后的收件人长度过长、公式解析后的主题过长等情况,都有可能导致定时调度任务执行失败。
2. FineReport 模板
类型 | 公式/参数/函数 | 使用位置 | 备注 |
---|---|---|---|
参数 | 用户全局参数: ${fine_username}${fine_position}${fine_role}${fr_username}${fr_userposition}${fr_authority} | 调度对象-参数设置 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)作为参数时,在「调度对象-参数设置」和「调度周期-执行条件-公式判断」中不要加{},例如:$fine_role;其他情况要加{},例如${fine_role} 2)使用用户全局参数,需要勾选「除通用结果外,根据默认用户组内的用户单独生成结果」 3)挂载平台、FTP 上传附件、打印文件使用通用结果文件夹下的文件,无法使用「用户全局参数」 |
数据集参数 | 调度对象-参数设置 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)作为参数时,在「调度对象-参数设置」和「调度周期-执行条件-公式判断」中不要加{},例如:$p;其他情况要加{},例如:${p} 2)在「调度对象-参数设置」右侧,点击「设置参数默认值」,参数列表加载后,才能在定时调度的其他地方引用数据集参数/模板参数/全局参数 2)对于数据集参数,只能获取到模板数据集的参数,不能得到服务器数据集的参数和报表函数 | |
模板参数 | |||
全局参数 | |||
自定义参数 | 调度对象-参数设置 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 作为参数时,在「调度对象-参数设置」和「调度周期-执行条件-公式判断」中不要加{},例如:$p;其他情况要加{},例如${p} | |
结果报表单元格值 | 示例: sum(B8,C8)>1000 | 调度对象-参数设置 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)作为参数时,在「调度周期-执行条件-公式判断」中,直接使用A2,其他情况下不能作为函数参数,只能使用${A2}的格式 2)只取默认 sheet 页的单元格值,不能跨 sheet 取数 3)若 A1 单元格的值可拓展为 1,2,3三个值: |
表单公式 | 决策报表的组件,可以引用该决策报表的「报表块」中单元格的数据 示例:${report0~A1} | 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 作为参数时,在「调度周期-执行条件-公式判断」中,直接使用report0~A1。其他情况下使用${report0~A1}; 注:2019-11-08 之后的 JAR 支持表单公式的使用。 |
报表块公式 | 示例: ${block1~A4} | 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 作为参数时,在「调度周期-执行条件-公式判断」中,直接使用参数名block1~A4就能取数。其他情况下使用${block1~A4}才能取数 注:2020-04-26 及之后的 JAR 支持聚合报表报表块公式的使用 |
跨sheet公式 | 示例: 'sheet1'!A1 | 调度周期-执行条件-公式判断 | 注1: 10.0.17 及之后的报表工程支持使用跨sheet公式进行公式判断,其他地方不支持使用, 10.0.17 之前的报表工程不支持跨sheet公式。 注2:定时调度跨sheet公式不支持聚合报表。 |
常用函数 | SUM、COUNT、 AVERAGE、CHAR、DATE、MAX、 MIN、TIME、 RANGE | 调度对象-参数设置 调度对象-文件名称 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)作为参数时,在「调度对象-参数设置」和「调度周期-执行条件-公式判断」中不要加${},其他情况要加${} 例如AND(1+7=8,5+7=12),在定时调度中应该写为${AND(1+7=8,5+7=12)},不要加=号 2)WEIGHTEDAVERAGE的参数只能是常数数组,不能是「A1:A4」这种形式 3)FORMAT函数,不支持引用模板中的单元格 4)COL和ROW写在单元格中,在定时调度中虽然不会报错,但是没有意义,返回值为常数 0 。 COL() 返回当前单元格的列号。 例如,若当前单元格是 A5 ,在 A5 中写入:=col(),返回 1 ;若当前单元格是 C6 ,在 A5 中写入:=col(),返回 3 5)COLCOUNT、COLNAME、MAP、ROWCOUNT、TABLEDATAFIELDS、VALUE这些函数的参数中包括有数据集,在定时调度中,只能使用服务器数据集,无法获取模板数据集。 6)WEBIMAGE用来显示网页上的图片,在定时调度中返回com.fr.file.WebImage@23dd10da类似格式; 7)REPORTCHECK虽不会报错,但是不生效 8)CELLSUM虽有返回值,但是无意义 |
数学和三角函数 | ABS、ACOS、ACOSH、ASIN、ASINH、ATAN、ATAN2、AVERAGE、CEILING、COMBIN、COS、SOSH、COUNT、DECIMAL、DEGREES、EVEN、EXP、FACT、FLOOR、INT、LN、LOG、LOG10、MAX、MIN、MOS、ODD、PI、POWER、PRODUCT、PROMOTION、RADIANS、RAND、RANDBETWEEN、ROUND、ROUND5、ROUNDDOWN、ROUNDUP、SIGN、SIN、SINH、SQRT、SUM、SUMPRECISE、SUMSQ、TAN、TANH、TOBINARY、TOHEX、TOOCTAL、TRUNC、WEIGHTEDAVERAGE | ||
文本函数 | CHAR、CNMONEY、CODE、CONCATENATE、ENDWITH、ENMONEY、ENNUMBER、EXACT、FIND、FORMAT、INDEXOF、LEFT、LEN、LOWER、MIN、NUMTO、PROPER、REGEXP、REPEAT、REPLACE、RIGHT、SPLIT、STARTWITH、SUBSTITUTE、TODOUBLE、TOINTEGER、TRIM、UPPER | ||
日期和时间函数 | DATE、DATEDELTA、DATEDIF、DATEINMONTH、DATEINQUARTER、DATEINWEEK、DATEINYEAR、DATESUBDATE、DATETONUMBER、DAY、DAYS360、DAYSOFMONTH、DAYSOFQUARTER、DAYSOFYEAR、DAYVALUE、HOUR、LUNAR、MINUTE、MONTH、MONTHDELTA、NOW、SECOND、TIME、TODATE、TODAY、WEEK、WEEKDATE、WEEKDAY、YEAR、YEARDELTA | ||
逻辑函数 | AND、BITNOT、BITOPERATION、IF、OR、REVERSE、SWITCH | ||
数组函数 | ADD2ARRAY、ARRAY、GREPARRAY、INARRAY、INDEXOFARRAY、JOINARRAY、MAPARRAY、RANGE、REMOVEARRAY、REVERSEARRAY、SLICEARRAY、SORTARRAY、UNIQUEARRAY | ||
报表函数 | COL、DECODE、ENCODE、I18N、ROW、COLCOUNT、COLNAME、FIELDS、MAP、RECORDS、ROWCOUNT、SQL、TABLEDATAFIELDS、TABLEDATAS、TABLES、VALUE | ||
其他函数 | WEBIMAGE、CLASS、CORREL、EVAL、INDEX、ISNULL、LET、MEDIAN、NVL、QUERY、RANK、SEQ、UUID、LUNAR | ||
层次坐标函数 | CIRCULAR、CROSSLAYERTOTAL、LAYERTOTAL、MOM、PROPORTION、SORT | ||
自定义函数 | REPORTCHECK、UBM、SUBSECTION、CELLSUM |
3. 无调度对象
类型 | 公式/参数/函数 | 使用位置 | 备注 |
---|---|---|---|
参数 | 用户全局参数: ${fine_username} ${fine_position} ${fine_role} ${fr_username} ${fr_userposition} ${fr_authority} | 不能使用 | 不能使用 |
常用函数 | SUM、COUNT、AVERAGE、CHAR、DATE、MAX、MIN、TIME、RANGE | 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)作为参数时,在「调度周期-执行条件-公式判断」中不要加${},其他情况要加${} 例如AND(1+7=8,5+7=12),在定时调度中应该写为${AND(1+7=8,5+7=12)},不要加=号 |
数学和三角函数 | ABS、ACOS、ACOSH、ASIN、ASINH、ATAN、ATAN2、AVERAGE、CEILING、COMBIN、COS、SOSH、COUNT、DECIMAL、DEGREES、EVEN、EXP、FACT、FLOOR、INT、LN、LOG、LOG10、MAX、MIN、MOS、ODD、PI、POWER、PRODUCT、PROMOTION、RADIANS、RAND、RANDBETWEEN、ROUND、ROUND5、ROUNDDOWN、ROUNDUP、SIGN、SIN、SINH、SQRT、SUM、SUMPRECISE、SUMSQ、TAN、TANH、TOBINARY、TOHEX、TOOCTAL、TRUNC、WEIGHTEDAVERAGE | ||
文本函数 | CHAR、CNMONEY、CODE、CONCATENATE、ENDWITH、ENMONEY、ENNUMBER、EXACT、FIND、FORMAT、INDEXOF、LEFT、LEN、LOWER、MIN、NUMTO、PROPER、REGEXP、REPEAT、REPLACE、RIGHT、SPLIT、STARTWITH、SUBSTITUTE、TODOUBLE、TOINTEGER、TRIM、UPPER | ||
日期和时间函数 | DATE、DATEDELTA、DATEDIF、DATEINMONTH、DATEINQUARTER、DATEINWEEK、DATEINYEAR、DATESUBDATE、DATETONUMBER、DAY、DAYS360、DAYSOFMONTH、DAYSOFQUARTER、DAYSOFYEAR、DAYVALUE、HOUR、LUNAR、MINUTE、MONTH、MONTHDELTA、NOW、SECOND、TIME、TODATE、TODAY、WEEK、WEEKDATE、WEEKDAY、YEAR、YEARDELTA | ||
逻辑函数 | AND、BITNOT、BITOPERATION、IF、OR、REVERSE、SWITCH | ||
数组函数 | ADD2ARRAY、ARRAY、GREPARRAY、INARRAY、INDEXOFARRAY、JOINARRAY、MAPARRAY、RANGE、REMOVEARRAY、REVERSEARRAY、SLICEARRAY、SORTARRAY、UNIQUEARRAY | ||
报表函数 | COL、DECODE、ENCODE、I18N、ROW、COLCOUNT、COLNAME、FIELDS、MAP、RECORDS、ROWCOUNT、SQL、TABLEDATAFIELDS、TABLEDATAS、TABLES、VALUE | 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)COL和ROW写在 FineReport 模板的单元格中,在定时调度中虽然不会报错,但没有意义,返回值为常数 0 2)COLCOUNT、COLNAME、MAP、ROWCOUNT、TABLEDATAFIELDS、VALUE这些函数的参数中包括有数据集,在 BI 工程就会获取 BI 的服务器数据集,在 FR 工程就会获取 FR 的服务器数据集 |
其他函数 | WEBIMAGE、CLASS、CORREL、EVAL、INDEX、ISNULL、LET、MEDIAN、NVL、QUERY、RANK、SEQ、UUID、LUNAR | 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 1)SEQ虽被执行,但永远只有一次,所以值一直为 1 ,没什么意义 2)WEBIMAGE用来显示网页上的图片,在定时调度中返回com.fr.file.WebImage@23dd10da类似格式 |
自定义函数 | UBM、SUBSECTION | 调度周期-执行条件-公式判断 文件处理-平台通知-主题和内容 文件处理-邮件通知-主题和内容 文件处理-客户端通知-主题和内容 文件处理-短信通知-短信参数 | 取单元格值的函数在无调度对象中都不能使用 |