FineReport模板设计器(帆软报表)之函数使用

一、常用函数

1、SUM-求和

1)概述

在这里插入图片描述

2)注意事项

函数将直接键入参数中的数值、逻辑值及文本表达式计算在内。若参数是数组或引用,则只有数组或单元格引用中的数值进行计算。

3)示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、COUNT-求个数

1)概述

在这里插入图片描述

2)注意事项

数字、日期或以文字代表的数字参数将被计算在内。
无法转换成数字的错误值或文本值参数将忽略不计。
数组或引用参数中包含可解析文本值、逻辑值、零值或空白单元格,这些值都将参与计算
数组或引用参数中包含不可解析的文本值,将忽略不计。

3、AVERAGE-求平均值

1)概述

在这里插入图片描述

2)注意事项

参数必须是数字,或是含有数字的名称,数组或引用。
如果数组或引用参数中含有文字,逻辑值,默认参与计数,countString 为 false 则不参与计数。
空单元格不参与计数。
单元格中的零值参与计数。

3)示例

如果A1:A6被命名为ages,分别等于10,23,文字,29,33及25,则:
在这里插入图片描述

4、CHAR-返回字符

1)概述

在这里插入图片描述

2)示例

在这里插入图片描述

5、DATE-转化日期

1)概述

在这里插入图片描述

2)注意事项

若需要处理公式中日期的一部分,如年或月等,则可用此公式。
若年,月和日是函数,而不是函数中的常量,则此公式最能体现其作用。

3)示例

在这里插入图片描述

6、MAX-求最大值

1)概述

在这里插入图片描述

2)注意事项

参数可以是数字、空白单元格、逻辑值或表示数值的文本表达式。
数组或引用参数中包含可解析文本值,逻辑值,零值或空白单元格,这些值都将参与计算。
数组或引用参数中包含不可解析的文本值,将忽略不计。
如果参数中没有任何数字,MAX 将返回0。

3)示例

在这里插入图片描述

7、TIME-返回时间日期

1)概述

在这里插入图片描述

2)示例

在这里插入图片描述

8、RANGE-返回数组

1)概述

在这里插入图片描述

2)示例

在这里插入图片描述

二、SQL函数

1. 概述

1.1 函数作用

数据集函数 能够从数据集中直接进行条件取数,但是有的时候用户希望某个单元格能够直接获取到数据库中的某个值,而不是先要定义一个数据集后,再去取数据。
这时就可以用 SQL 函数。

1.2 函数解释

在这里插入图片描述
注:行序号可以省略,这样返回值为数据列。

1.3 注意事项

仅支持查询 sql 语句。

2. 取数据库中不带参数的指定内容

示例数据:内置数据库 FRDemo 中的 STSCORE 数据表。
从内置数据库「FRDemo」里的 STSCORE 表取第三行第三列数据值。
从表 STSCORE 中,可看到第 3 行第 3 列的值为 Alex,如下图所示:

在这里插入图片描述

在这里插入图片描述

现在若要直接在报表的单元格中显示数据值:Alex,而不是通过先定义一个数据集后,再去取数据的方式,使用 sql() 公式,此时只需在单元格中输入:=sql(“FRDemo”,“SELECT * FROM STSCORE”,3,3)即可,预览就可看到 Alex 值,如下图所示:

在这里插入图片描述

3. 取数据库中带有参数的指定内容

示例数据:内置数据库 FRDemo 中的 STSCORE 数据表。

3.1 SQL 参数为普通参数

需要取出班级为 Class1 的第 3 列所有值。
在单元格中输入:=sql(“FRDemo”,"SELECT * FROM STSCORE where CLASSNO = ‘Class1’ ",3),显示效果(班级为 Class1 的第 3 列所有值),如下图所示:

在这里插入图片描述
公式说明:
在这里插入图片描述

若需要显示某个具体值,如显示 Jonny (即班级为 Class1 的第 3 列第 4 行的值),写法如下:
=sql(“FRDemo”,"SELECT * FROM STSCORE where CLASSNO = ‘Class1’ ",3,4)

3.2 SQL 参数为变量

若参数值为变量如为报表参数或者是某个单元格,则写法如下:=sql(“FRDemo”,“SELECT * FROM STSCORE where CLASSNO = '”+c l a s s + " ′ " , 3 , 4 ) 或 = s q l ( " F R D e m o " , " S E L E C T ∗ F R O M S T S C O R E w h e r e C L A S S N O = ′ " + A 1 + " ′ " , 3 , 4 ) 例如希望过滤控件选择不同班级,显示不同班级下所有的同学的名字。首先设置模板参数「 c l a s s 」,然后在单元格中输入公式: = s q l ( " F R D e m o " , " S E L E C T ∗ F R O M S T S C O R E w h e r e C L A S S N O = ′ " + class+"' ",3,4) 或=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+A1+"' ",3,4) 例如希望过滤控件选择不同班级,显示不同班级下所有的同学的名字。 首先设置模板参数「class」,然后在单元格中输入公式:=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+class+"",3,4)=sql("FRDemo","SELECTFROMSTSCOREwhereCLASSNO="+A1+"",3,4)例如希望过滤控件选择不同班级,显示不同班级下所有的同学的名字。首先设置模板参数「class」,然后在单元格中输入公式:=sql("FRDemo","SELECTFROMSTSCOREwhereCLASSNO="+class+"’ ",3),如下图所示:

在这里插入图片描述
在这里插入图片描述
显示效果如下图所示:
在这里插入图片描述

如果传递的参数是获取当前单元格的值,即用 $$$ 作为参数时,字符串类型同样需要拼接单引号,例如:

=sql(“FRDemo”,“SELECT * FROM STSCORE where CLASSNO = '”+$$$+"’ ",3,4)

注1:如果参数或者单元格值有多个,那么 SQL 函数的写法如下:=sql(“FRDemo”,“SELECT * FROM STSCORE where CLASSNO in ('”+c l a s s + " ′ ) a n d C O U R S E i n ( ′ " + class+"') and COURSE in ('"+class+")andCOURSEin("+COURSE+"') ",3,4)

3.3 SQL 参数为变量且需要拼接

在 SQL 中还可以使用 IF 函数进行判断并拼接模板参数,例如希望实现当参数 class 为空时,选择全部学生姓名,可输入公式:

=sql(“FRDemo”,“SELECT * FROM STSCORE where 1=1 “+if(len(class)== 0,””,“and CLASSNO = '”+class+“'”),3)
在这里插入图片描述
公式说明:
在这里插入图片描述
如果在 SQL 中参数为模糊查询时,可使用如下公式:

=sql(“FRDemo”,“SELECT * FROM STSCORE where CLASSNO like '%”+$class+"%’ ",3,4)

4、实战

加入数据库查询及参数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
选择数据集及数据列即可

一、TOIMAGE函数显示单元格图片

1. 概述

1.1 版本

在这里插入图片描述

1.2 函数作用

TOIMAGE 函数用于在报表中显示某一路径下的图片。支持 jpg、png、bmp 常用格式的图片,图片可以存储在本地磁盘,也可以存储在远程服务器,也可以为网页中图片。

1.3 函数解释

TOIMAGE(path),显示指定路径下的图片。此处默认开启了图片缓存功能以加速报表的生成.如不需要缓存,请在参数后面追加值FALSE。
在这里插入图片描述

示例:
TOIMAGE(“D:/1.jpg”)
TOIMAGE(“D:/1.jpg”,false)
TOIMAGE(“D:/1.jpg”,true,200,300)
TOIMAGE(“D:/1.jpg”,true,“50%”,“200%”)

1.4 注意事项

1)使用 TOIMAGE 函数显示单元格图片的模板,在选择菜单栏「文件>输出>模板(内置数据)」时,图片不会伴随输出。
2)若使用 TOIMAGE 函数的单元格属性设置了「样式>段间距」,那么导出或打印报表时,设置的「段间距」不生效。
3)使用 TOIMAGE 函数返回的图片,「图片布局」为「默认」。可以在「单元格属性>样式>对齐>图片布局」处选择其他布局方式。
4)不支持模拟计算,模拟计算详情参见:2.4节。
5)不支持 gif 格式。

2. 应用场景

TOIMAGE 函数中可以直接输入图片路径,也可以引用存储在数据库的图片路径字段。

2.1 直接输入

图片可以存储在本地磁盘,也可以存储在远程服务器上。图片存储的位置不同,path 路径的写法不同。
在这里插入图片描述

2.2 引用数据库中的字段

1)若图片存储在本地磁盘 E 盘,路径为:E:/图片/logo-fanruan.png,将图片路径存在数据库表中,如下图所示:
在这里插入图片描述
2)将字段「path」拖到报表单元格中,右侧单元格属性选择「高级」,在「显示值」位置,输入公式 TOIMAGE($) , ),)$ 表示当前单元格值,步骤如下图所示:
在这里插入图片描述
3)若存储在数据库的图片路径不完整,需要补全路径使图片显示。
如上述 E 盘中的图片,若在数据库中存储的路径为 :logo-fanruan.png ,需要将「显示值」的公式修改为 :TOIMAGE(“E:/图片/”+$$$) 。
注:如果用户数据库服务器和报表应用服务器分开的话,图片应该存放在报表应用服务器上,而不是数据库服务器上。

3、toimage使用截图

图片在数据库中储存:在插入含图片路径的数据列中点击高级可如下所示
在这里插入图片描述
点击F(x),下图是函数写法
在这里插入图片描述
在数据库查询中新建一个查询查出图片存储位置再进行拼接即可
在这里插入图片描述
以上是小编toimage()函数的用法,具体截图就不展示了,感兴趣的朋友可以去帆软官网的帮助文档查看其他函数。


版权声明:本文为weixin_67677668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。