目录:
1. 概述编辑
2. 函数组成编辑
函数计算由四个内容组成:
内容 | 说明 | 报表中显示 |
---|---|---|
函数 | 用于对字段中的值或成员进行转换的语句 | 报表设计器中显示为蓝色 |
数据列 | 数据表中的数据列 | 报表设计器中显示为黑色 |
运算符 | 运算的符号 | 报表设计器中显示为浅黑色 |
文本表达式 | 按照写入内容表示的常量值 | 报表设计器中 文本类型、时间类型(有双引号)显示为粉色 数值类型显示为紫色 |
例如,使用内置数据集「销量」,对不同地区销量高低做判断。
将「地区」字段拖入 A2,将「销量」字段拖入B2,并设置「销量」展示方式为求和,然后对不同地区的销量情况进行求和,如下图所示:
选择「单元格元素>插入公式」,弹出公式定义框,输入公式:if(B2>8000,"高销量","低销量"),即进行判断,如果销量大于 8000,则定义为高销量,否则定义为低销量,如下图所示:
输入的计算内容说明如下所示:
内容 | 说明 |
---|---|
函数 | IF |
数据列 | B2 |
运算符 | 详情参见:操作符 |
文本表达式 | 字符串文本:"高销量"、"低销量" 数字文本:8000 |
然后点击「检查合法性」进行公式校验,如下图所示:
完成后即可进行报表的预览,查看公式输出结果。
3. 支持的使用位置编辑
3.1 在公式编辑框中使用函数
FineReport 中可以使用「公式编辑器」的位置有如下几个:
使用位置 | 图示 |
---|---|
条件属性 | 示例:隔行/列设置背景色 |
数据字典 | 示例:数据字典 2.4 节 |
筛选过滤 | |
填报设置提交条件 | |
图表标题 | |
图表轴定义 | |
定义图表单元格数据源 | |
报表页眉与页脚 | |
单元格内容提示 |
3.2 在 SQL 编辑框中使用函数
3.2.1 SQL 中使用普通函数
在 SQL 中使用公式,可以将公式放在 ${} 中,例如参数为空返回全部的 sql 语句:
SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")} ${if(len(province) == 0,"","and 货主省份 = '" + province + "'")}
参数/公式 | 说明 |
---|---|
area 和 province | 自定义的参数 |
if(len(area) == 0,"","and 货主地区 = '" + area + "'") | 如果len(area)!=0,即 area 参数不为空,比如说 area 的值为华东,那么 IF 语句的执行结果为and 货主地区='华东',然后再把这句话拼接到 SQL 语句当中,SQL 语句就变成: SELECT * FROM 订单 where 1=1 and 货主地区='华东' and 货主省份='江苏' |
3.2.2 SQL 中使用 SQL 函数
SQL 语句其实是字符串。因此可以从数据库调用一个 SQL 语句作为字符串进行取数。此时即用到 SQL函数,例如公式:
=sql("FRDemo","SELECT * FROM 销量 ",1,1) 输出结果为华东
同时也可以把这个字符串用在 SQL 公式中作为字符串执行,因此创建数据集时可以定义为:SELECT * FROM where 地区='${sql("FRDemo","SELECT * FROM 销量 ",1,1)}'
也就是 SELECT * FROM where 地区='华东'。
3.3 在 JS 编辑框中使用函数
作为一款 B/S 产品,browser 端的 JavaScript 是必不可少的。
如何在 JS 编辑框中使用公式详情参见:在JS中使用FR公式