多语言展示
当前在线:351今日阅读:113今日分享:31

excel报表FineReport中SQL函数的介绍

有的时候希望某个单元格能够直接获取到数据库中的某个值,而不是先要定义一个数据集后,再去取数据。这时就可以用函数Sql()公式,下面通过excel报表FineReport讲解下其用法。
工具/原料
1

excel报表FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

公式解释SQL(connectionName,sql,columnIndex,rowIndex):返回的数据是从connectionName数据库中获取的sql语句的表中的第columnIndex列第rowIndex行所对应的元素。connectionName:数据库名,字符串形式,需要用引号如'FRDemo';sql:SQL语句,字符串形式;columnIndex:列序号,整型;rowIndex:行序号,整型。备注:行序号可以不写,这样返回值为数据列。

2

示例(就一般的只获取某个字段内容)从表 STSCORE中,我们可看到第3行第3列的值为Alex,如下:现在若要直接在报表的单元格中显示数据值:Alex,而不通过先定义一个数据集后,再去取数据的方式,这里就可以使用sql()公式,此时只需在单元格中输入:=sql('FRDemo','SELECT * FROM STSCORE',3,3)即可,预览就可看到Alex值。

3

示例(带有参数时公式的使用)带有参数形式的时候,直接在报表的单元格中获取数据值,写法如下:=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO = 'Class1' ',3)显示效果(班级为Class1的第3列所有值),如下:

4

若需要显示某个具体值,如:显示 Jonny 的效果(即班级为Class1的第3列第4行的值),写法如下:=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO = 'Class1' ',3,4)若参数值为变量如为报表参数或者是某个单元格,则写法如下:=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO = ''+$class+'' ',3,4)或=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO = ''+A1+'' ',3,4)如果传递的参数是获取当前单元格的值,即用$$$作为参数时,字符串类型同样需要拼接单引号,如下:=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO = ''+$$$+'' ',3,4)注:如果参数或者单元格值有多个,那么sql函数的写法如下:=sql('FRDemo','SELECT * FROM STSCORE where CLASSNO in (''+$class+'') ',3,4)

推荐信息